【发布时间】:2014-12-19 07:02:14
【问题描述】:
我正在为已构建的 java 类函数编写测试。我正在使用 Testng 和 Mockito 编写测试,并且有一个数据提供者。
这是我的测试
@Test(dataProvider = "myProvider", dataProviderClass = StaticDataProvider.class,
expectedExceptions = SomeException.class)
public void myControllerTest(String argument) throws Exception {
// Mocked object bussiness\
Boolean resultantObject = business.getList(argument);
Assert.assertTrue(resultantObject);
}
这是我要测试的控制器
public Boolean controller(String argument) {
if(argument != null) {
throw new someException();
} else {
System.out.println("Sucess");
return true;
}
}
这是我的数据提供者
@DataProvider(name = "myProvider")
public static Object[][] getDirectoryList() throws Exception {
Object[][] result = null;
// case1 throws SomeException
String testData1 = null;
// case2 don't throw exception
String testData2 = "String";
result = new Object[][] { { testData1 }, { testData2 } };
return result;
}
我面临的问题是,我不想创建另一个测试来测试错误和非错误代码并使用单个测试用例完成我的测试覆盖。但是当我把 Expected Exception 放在最上面时,它会在正确的代码上失败,而当我不这样做时,它会在错误的代码上失败。
注意:这是示例代码,可能不起作用,这只是为了了解我正在处理的场景和我的期望。
【问题讨论】:
-
不同的期望:不同的测试用例。
-
有没有什么办法可以一次性完成呢
标签: java unit-testing testing testng mockito