我有一个builder
类,它build()
函数,我正在为它传递一个服务。
我有一个构建器的测试类,它有两种方法
有没有办法使用相同的参数测试两次但返回不同的值?
@Before
public void initTest() {
MockitoAnnotations.initMocks(this);
}
@Test
private void test1{
Mockito.when(defaultBuilder.build(service)).thenReturn(createObject());
}
@Test
private void test2(){
Mockito.when(defaultBuilder.build(service)).thenReturn(createDifferentObject());
}
问题是我从第二次测试中获得了createObject()
对象,即使我期待createDifferentObject()
.
您可以在设置第二个值之前重置模拟:
https://static.javadoc.io/org.mockito/mockito-core/2.25.1/org/mockito/Mockito.html#resetting_mocks
但是,这被认为是测试概念不佳的标志。
public class Test {
private MyObject myobject;
private MyObject myDifferentObject;
@Before
public void initTest() {
MockitoAnnotations.initMocks(this);
myobject=createObject();
myDifferentObject=createDifferentObject();
}
@Test
private void test1{
Mockito.when(defaultBuilder.build(service)).thenReturn(myobject);
}
@Test
private void test2(){
Mockito.when(defaultBuilder.build(service)).thenReturn(myDifferentObject);
}
}
//should work.