Java 我可以编写一个没有任何断言的测试吗?
我想知道在没有任何“断言”的情况下编写测试是否“可以”。因此,只有在发生异常/错误时,测试才会失败 例如:像一个测试,它有一个简单的select查询,以确保数据库配置是正确的。因此,当我更改一些数据库配置时,我会重新运行这个测试,并检查配置是否正确Java 我可以编写一个没有任何断言的测试吗?,java,unit-testing,junit,assert,Java,Unit Testing,Junit,Assert,我想知道在没有任何“断言”的情况下编写测试是否“可以”。因此,只有在发生异常/错误时,测试才会失败 例如:像一个测试,它有一个简单的select查询,以确保数据库配置是正确的。因此,当我更改一些数据库配置时,我会重新运行这个测试,并检查配置是否正确 谢谢 确保单元测试运行时不会遇到异常是完全有效的 按照他的建议,一定要清楚准确地记录测试的内容。测试是一个非常主观的讨论。有些人会说不,你应该总是有AAA语法。就我个人而言,我写的测试与你所说的非常相似,所以我想说,当然可以,如果它能帮助你构建一个更
谢谢 确保单元测试运行时不会遇到异常是完全有效的
按照他的建议,一定要清楚准确地记录测试的内容。测试是一个非常主观的讨论。有些人会说不,你应该总是有AAA语法。就我个人而言,我写的测试与你所说的非常相似,所以我想说,当然可以,如果它能帮助你构建一个更稳定的应用程序,那么为什么不呢
例如,在NUnt中,我认为[ExpTestExpExtudio Type(xxxx)]在逻辑上等同于断言。
此外,在某些测试中,您可能不会断言任何内容,而是希望通过mock和expected获得特定的执行顺序。正如@Kyle所指出的,您的测试用例是有效的。事实上,反过来也是有效的:当您编写一个测试用例来确认使用特定参数的某个调用会导致异常时。确定您可以这样做。
如果预期结果是一个验证,那么编写一个没有断言的测试也是非常好的。我知道testng将允许您指定应该抛出的异常,如果没有抛出预期的异常,测试将失败 编写没有任何断言的单元测试肯定是可以接受的。您可以这样做:
- 测试一个无异常结束的案例。在本例中,如果可以的话,最好使用特定类型的异常对测试进行修饰,如[ExpectedException(MyException)]
- 测试一个特性就在那里。即使测试不可能生成异常,如果有人决定删除该功能,您也可能希望使该测试失败。如果测试使用某个方法,并且该方法被删除,那么测试将无法构建