带有内部对象的Java单元测试
我有以下两门课
public class SampleTest {
public Integer getResult() {
Test1 test1 = new Test1(5);
Integer j = doSomeThing(test1);
return j;
}
public Integer doSomeThing(Test1 test1){
Integer p = test1.getValue();
return p+1;
}
}
public class Test1 {
Integer i;
Test1(Integer i){
this.i = i*2;
}
Integer getValue(){
return i;
}
我想对SampleTest getResult()进行单元测试,但我想在这里模拟Test1(),这样我就可以返回我在UnitTests中设置的任何值。这些课我都改不了
我使用Mockito尝试了一些模式,但没有成功
请提出一些好的建议
# 1 楼答案
你绝对可以把Mockito和你现在拥有的类一起使用。 我建议您为
SampleTest
添加一个构造函数,在其中传递一个test1实例:然后,getResult方法可以使用这个
Test1
客户端:最后,您可以模拟test1实例,让它返回您想要的任何内容:
通过这种设计,您可以在两个类之间进行松散耦合,并且您的测试可以清楚地显示它们之间的关系