java是否可以在JUnit中设置被测试类的方法的返回值?
比如说,有以下几类需要测试:
public class MyClass {
public void method1() {
...
String str = method3()
...
}
public int method2() {...}
private String method3() {...}
}
我在用JUnit写MyClassTest.java
。我希望method3()
返回我分配的值,而不是执行方法本身。我只能用Mockito
可能吗
如果是,我该怎么做
# 1 楼答案
仅使用Mockito无法模拟私有方法
但是,您可以重构代码,将另一个类中的
method3()
提取为公共方法,作为MyClass
的依赖项。这样method3()
自然是可以嘲笑的现在在单元测试中模拟一下:
# 2 楼答案
你不能用Mockito,但你可以用JMockit。您的测试如下所示:
你可以阅读关于这个功能的文档,叫做faking,here