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

问题描述 投票:0回答:2

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

}

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

我使用的模型是一个groovy模型,因此已经有一个这个属性的公共setter。

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

提前感谢您的智慧

java exception exception-handling testng invalidargumentexception
2个回答
0
投票

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


0
投票

我通过删除IntelliJ中的.idea文件夹并使用我的pom.xml文件重新导入我的项目来修复此问题,我只能假设TestNG没有被正确拉入,这就是为什么expectExceptions未被完全识别的原因。

© www.soinside.com 2019 - 2024. All rights reserved.