0

我在 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 模型,因此已经有一个用于该属性的公共设置器。

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

提前感谢您的智慧

4

2 回答 2

0

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

于 2019-02-22T08:57:37.983 回答
0

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

于 2019-02-21T19:50:26.510 回答