我有一个具有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()
对象。
答案 0 :(得分:2)
您可以在设置第二个值之前重设模拟:
https://static.javadoc.io/org.mockito/mockito-core/2.25.1/org/mockito/Mockito.html#resetting_mocks
但是,它被认为是测试概念不佳的标志。
答案 1 :(得分:1)
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.