我在TestNG遇到这种奇怪的情况,希望有人能帮忙。
我正在尝试测试IllegalArgumentException,本质上是试图阻止任何可能最终传递给模型的setter的恶意程序。 我已经用预期的异常注释的测试可以编译并运行良好,但是尽管我没有在代码中抛出任何IllegalArgumentException异常,但仍通过了测试,我对此感到茫然。
public class CarTest extends ModelTest {
@Test(expectedExceptions = InvalidArgumentException.class)
public void willThrowInvalidArgumentExceptionWhenSettingEngineToNull() throws InvalidArgumentException{
Car car = new Car();
car.setEngine(null);
}
}
尽管没有抛出异常,但这仍然通过。
我使用的模型是常规模型,因此该属性已经有一个公共设置器。
我已经更改了型号名称,但是在这种情况下应该没有任何区别。
预先感谢您的智慧
答案 0 :(得分:0)
在我看来car.setEngine(null);
引发了异常。删除该行,测试应该失败或发送有效的参数。
答案 1 :(得分:0)
我已通过删除IntelliJ中的.idea文件夹并使用pom.xml文件重新导入我的项目来解决此问题,我只能假定TestNG未被正确提取,这就是为什么不能完全识别期望异常的原因。