当相同的参数具有不同的结果时,Mockito



我有一个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.

相关内容

  • 没有找到相关文章

最新更新