我是Scala新手,正在为Scala中的Play应用程序编写一些测试。Play应用程序已经用Java编写。
我有一个有一个公共方法进程的刷新服务
public RefreshResponse process(RefreshRequest request) throws Exception {
return this.oauthService.token(request.oauthUrl, request.clientId, request.clientSecret, request.refreshToken)
.thenCompose(oauthToken -> this.processHelper(request.withOAuthToken(oauthToken)))
.get();
}
其中动作在另一个包中定义为POJO
我已经根据Scala指南编写了测试
当试图模拟此服务时,我使用了以下代码
var mockRefreshService = mock[RefreshService]
when(mockRefreshService.process(_: RefreshRequest))
thenReturn (new RefreshResponse)
我从Scala得到以下编译器错误,无法弄清楚这些类型如何是矛盾的
[错误]/home/joey/Projects/sntdb/test/controllers/ApiControllerSpec。scala:31:重载方法值,然后返回可选值:
[错误](x$1:actions.RefreshRequest=
[错误](x$1:actions.RefreshRequest=
[错误]无法应用于(操作。刷新响应)
[错误]当(mockRefreshService.process(_:RefreshRequest))然后返回(新的RefreshResponse)
如果需要更多信息,请告诉我。否则,如果有人有任何想法,我们将不胜感激。
我有同样的问题,唯一帮助我的是将参数提取到变量中。出于某种原因,它起作用了:
var mockRefreshService = mock[RefreshService]
val response = new RefreshResponse
when(mockRefreshService.process(_: RefreshRequest))
thenReturn(response)
我解决了这个问题,但我很想了解一下为什么会这样。
我用我认为理解的任何[RefreshRequest]替换了_:RefreshRequest。
但是进口让我绊倒了。
我导入了
import org.mockito.ArgumentMatchers.any
那时一切都好了
我进口的时候
import org.mockito.Matchers.any
我有个错误
value any is not a member of org.mockito.Matchers.any
看看Matchers的文档,它是参数Matchers的一个子类,那么它怎么没有呢?
如果您使用mockito-scala
,您可以混合使用traitorg.mockito.ArgumentMatchersSugar
,它将提供所有适当的,此外,对于任何
,您无需再指定类型,因为编译器会弄清楚
检查https://github.com/mockito/mockito-scala欲了解更多信息
免责声明:我开发了该库(但无论如何都是mockito套件的一部分)
这是我的实际服务方法。在测试时,它给我的变量为空。用户和响应 我试图写一个测试用例和模拟方法findByEmail()和保存(),但同时嘲笑我没有收到用户对象在返回中提到的thenback()和doback()。 有人能帮忙吗。
问题内容: 我正在尝试使用“ any”匹配器对这个getKeyFromStream方法进行存根。我尝试了更明确和不太明确的(anyObject()),但似乎无论我如何尝试,此存根都不会在我的单元测试中返回fooKey。 我想知道是否是因为它受到保护,或者我缺少其他东西或做错了什么。在整个测试中,我还有其他的when / then语句在 起作用, 但是由于某种原因,事实并非如此。 注意:getKey
我对反应性编程相对较新。我的问题是关于
我目前正在学习Spring boot,我一直在测试一个项目——非常感谢任何帮助,因为我是这里的初学者。 我有一个rest控制器测试,使用Mockito,当使用Mockito.when()调用方法时,该测试似乎忽略了Then返回。 这是整个班级: 名为“testCreateUser”的测试没有问题地通过了。给我一个问题的是名为“testFindUserById”的测试。 以下是我尝试测试的控制器方法
我的角度控制器中有一个对象数组。 我想返回数组中字段的索引值,该字段具有与我的参数匹配的 ID。 数组中只有一个具有匹配 的对象。
当一个方法完成时,我试图使用Byte Buddy来执行一些额外的逻辑。以下是示例代码: 当我把代表团和。第二次调用时,此实例的原始调用方将丢失来自“proxyClient”对象的返回值,该对象以前用于调用它的方法调用。我是不是用错了? 基本上,我希望在方法的末尾添加一些附加逻辑(在原始方法内部或添加另一个方法调用并不重要),但同时保留原始方法调用的返回值。