【发布时间】:2012-02-25 17:00:09
【问题描述】:
我正在编写 JUnit 测试并使用 Mockito,我想调用一个方法,该方法又多次调用第二个方法。我不希望在我的单元测试期间调用第二种方法,但我想知道它的参数是什么。我要测试的代码如下所示:
public class MyClass {
public void myMethod() {
int a = [do some logic]
int b = [do some logic];
doSomething(a, b);
a = [do some logic];
b = [do some logic];
doSomething(a, b);
}
public void doSomething(int a, int b) {
// code that I do not want to be executed during a unit test
}
}
现在是单元测试:
@Test
public void test() {
MyClass myClass = new MyClass();
myClass.myMethod();
verify(myClass).doSomething(17, 33);
verify(myClass).doSomething(9, 18);
}
我是 Mockito 的新手,我不知道是否有可能 A) 阻止 doSomething() 被执行和 B) 验证 a & b 参数的值。我愿意接受诸如“Mockito 无法帮助您”或“这在技术上不可行”之类的答案。如果没有办法模拟这种事情,我可能会考虑将那些 [do some logic] 块重构为我可以直接测试的方法,但我的代码比这个简单的例子更复杂,我不允许在线发布代码.
【问题讨论】:
-
您可能会发现这个问题的答案很有用:stackoverflow.com/questions/1087339/…
标签: java methods junit mocking call