尽管被调用的代码中没有抛出异常,但TestNG预期的异常仍通过测试

时间:2019-02-21 16:14:58

标签: java exception exception-handling testng invalidargumentexception

我在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);
}

}

尽管没有抛出异常,但这仍然通过。

我使用的模型是常规模型,因此该属性已经有一个公共设置器。

我已经更改了型号名称,但是在这种情况下应该没有任何区别。

预先感谢您的智慧

2 个答案:

答案 0 :(得分:0)

在我看来car.setEngine(null);引发了异常。删除该行,测试应该失败或发送有效的参数。

答案 1 :(得分:0)

我已通过删除IntelliJ中的.idea文件夹并使用pom.xml文件重新导入我的项目来解决此问题,我只能假定TestNG未被正确提取,这就是为什么不能完全识别期望异常的原因。