我正在尝试在Java写单元测试。下面是我的代码片段
类Temp{public void method(){
return someObject.someMethod(param1, param2, param3, param4, param5);
}
}
测试方法:
@Test
public void testMethod() {
Mokito.when(someObjectMock.someMethod(Mockito.anyString(), Mockito.anyString(), Mockito.anyInt(), Mockito.anyBoolean(),
false)). thenReturn(true);
boolean status = temp.method();
Assert.assertEquals(true, status);
}
然而,在执行测试用例时,我得到以下错误:
Invalid Use of argument matchers !
5 matchers expected, 4 recorded
如果我的理解是正确的,它期望传递的所有参数都被嘲弄。但这不是我想要的,我希望模拟前4个参数,并根据5个参数(true或false),然后指定方法的适当返回值。
有办法绕过这件事吗?
谢谢
您需要对最后一个参数使用matchers.eq(false)
(或者mockito.eq(false)
,在这两个地方都公开了相同的静态方法),而不是使用简单的false
。
也就是说,考虑将您的短截短(when()
调用)中的所有匹配器保留为any()
,而不是期望一个值。这里有两种情况:或者您的测试实际上关心传递给模拟的值是什么,在这种情况下,您需要verify()
调用(因为错过的模拟预期在Mockito中不是错误),或者您的测试不关心,在这种情况下,期望特定的值只会使测试变得脆弱。不管是哪种方式,除非您需要根据不同的参数值从存根返回不同的值,否则在截尾时期望特定的参数是没有任何价值的。
我遇到了和这个人一样的问题: X-Drupal缓存Drupal 7网站总是打MISS,找不到出路。 我正在运行Drupal7-Pressflow 和 清漆4.0 当我卷曲时,我得到这个结果: 这是上光油。com告诉我:“你应该得到一个金星,给你:金星徽章”。。。。 虽然链接Drupal组织线程中建议的“Varnish Indicator Chrome Extension”告诉我Varnish mi
1. 马尔科夫链概述 马尔科夫链定义本身比较简单,它假设某一时刻状态转移的概率只依赖于它的前一个状态。举个形象的比喻,假如每天的天气是一个状态的话,那个今天是不是晴天只依赖于昨天的天气,而和前天的天气没有任何关系。当然这么说可能有些武断,但是这样做可以大大简化模型的复杂度,因此马尔科夫链在很多时间序列模型中得到广泛的应用,比如循环神经网络RNN,隐式马尔科夫模型HMM等,当然MCMC也需要它。 如
1.
我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。 我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为: 然后在我的@Before测试方法中,我有以下内容: 这是2
我正在尝试通过angle 4上传一个带有pdf文件的表单 该请求是一个多部分/表单数据请求 我正在使用springboot、apachecamelservlet,我的路径是 在我的处理器中 然后我正在尝试写入如下文件: 无论我怎么尝试,文件总是被破坏。无法在Acrobat reader中打开。
我们尝试使用Gherkin/Cucumber进行单元测试。在maven项目中,我们曾经使用JUnit/JMockit执行以下格式的单元测试,并且工作得很好。 旧的Junit测试类曾经工作过: 在开始使用Gherkin/Cucumber之后,我们正在用以下两个类编写单元类: