我应该在JUnit测试的assertEquals
方法中使用断言语句(@Before
,...)吗?
如果断言失败,所有测试都会失败,所以它的行为正是我想要的,但我不相信这是一个好主意,因为@Before
- 带注释的方法不是测试。 / p>
答案 0 :(得分:9)
听起来Assume机制会更合适。
一组有用于说明条件假设的方法 其中测试有意义。失败的假设并不意味着 代码被破坏了,但测试没有提供有用的信息。该 默认的JUnit运行器将处理失败假设的测试视为忽略。 自定义跑步者可能表现不同。
这似乎更直观,因为您在实际执行每个测试之前测试了测试前置条件。请注意上面的参考,以不同的方式执行自定义运行程序,并且您可以修改运行器以使其失败,而不是默默地忽略该测试。
答案 1 :(得分:3)
就个人而言,我认为没有任何问题。如果所需的所有测试都失败,则满足一些前提条件,满足要求。我唯一想到的是你应该验证前提条件,而不是测试被测代码。否则它似乎会产生误导,我建议将条件放在每个测试中调用的方法中。