如果不满足假设,则防止jUnit失败

时间:2019-05-14 12:45:44

标签: junit

使用jUnit运行一系列测试用例时,可以使用假设跳过某些情况下的测试。但是,如果没有满足假设的情况,则将测试标记为失败。有办法防止这种情况吗?

例如,如果将属性testTopic作为vertical_move传递,则应该运行vertical_move的所有测试,而没有测试horizo​​ntal_move的所有测试。目前,我正在使用如下所示的假设来跳过这些测试。

assumeTrue(TestCons.get("testTopic").contains("horizontal_move"));

问题在于,如果假设在所有情况下均失败,则测试将标记为失败。我希望它可以防止这种情况。换句话说,如果假设失败,则即使从未满足该假设,也可以跳过测试而不会失败。有没有办法做到这一点?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用@Ignore标记应从执行中完全排除的测试,但是我不知道如何从测试用例的中确定。

说实话:我认为您甚至都不要尝试。

单元测试应该简单明了。它们的存在是为了帮助您快速识别生产代码中的错误。但是:读者需要消化以理解测试用例失败原因的任何“额外逻辑”都会使这一点变得更加困难。

因此:避免在测试用例中添加任何此类额外的逻辑。编写测试用例,创建一个 clear 设置,然后断言所期望的结果完全符合该设置,而没有其他要求。