Cae*_*sar 7 java testng unit-testing mockito testng-dataprovider
我试图通过数据提供程序将模拟对象传递给测试方法.以下是我的测试类:
@Test
public class FirstTest {
@InjectMocks
First firstSpy;
@Mock
Second secondMock;
@Mock
Third thirdMock;
@BeforeMethod
public void beforeMethod() {
firstSpy = Mockito.spy(new First());
MockitoAnnotations.initMocks(this);
}
@DataProvider
private final Object[][] serviceData() {
return new Object [][] {
{thirdMock, 1},
{null, 2}
};
}
@Test(dataProvider="serviceData")
public void m1(Third thirdObject, int noOfTimesm3Called) {
Mockito.doReturn(secondMock).when(firstSpy).m4();
Mockito.doReturn(thirdObject).when(secondMock).m2();
firstSpy.m1();
verify(firstSpy, times(noOfTimesm3Called)).m3();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,它会显示出来
PASSED: m1(null, 2)
FAILED: m1(null, 1)
Run Code Online (Sandbox Code Playgroud)
这意味着传递空对象的两次.这背后的原因是什么?我怎样才能获得理想的行为?我想避免测试方法中的任何if-else语句,并希望使用数据提供程序在同一方法中测试这两种情况.有办法吗?
归档时间: |
|
查看次数: |
3693 次 |
最近记录: |