我正在尝试使用 JUnit 和 Mockito 来模拟端到端方法(addSomething 方法)。很明显,在该方法中我使用了其他方法。 我的疑问是:
- 要模拟端到端方法,我还需要模拟其他方法,对吗?
- 如何模拟 addSomething 方法中的方法?
我想要的一个简单例子是:
方法A
public int summing(int sum){
int A = 5;
int B = 23;
sum = SumOfIntegers(A,B);
return sum;
}
方法B
private int SumOfIntegers(int number1, int number2){
try{
result = number1 + number2;
}catch (Exception e) {
e.printStackTrace();
}
return result;
}
由于类的方法 A 正在调用私有(private)方法,因此如何模拟它?
最佳答案
单元测试验证单元的公共(public)可观察行为,即返回值以及与其依赖项的通信
<小时/>您的情况的问题是存在对 ServerProxy
的隐藏依赖关系。
您不应该在该方法中实例化它,根本不应该在该类中实例化它......
如果您严格遵循关注点分离/单一责任模式,则依赖项的实例化是其自身的责任,不应由使用依赖项的对象来完成。
总之,您应该通过依赖注入(inject)将ServerProxy
对象注入(inject)到您的测试单元中,最好作为构造函数参数,最有可能使用DI 框架。在这种情况下,用可以为测试配置的模拟替换 ServerProxy
很简单。
关于java - 如何使用mockito来模拟另一个类中的类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46079478/