我的一些单元测试中有一些assumeTrue()
和assumeFalse()
声明。如果假设不正确,我想写出一条日志消息,但我没有看到明显的方法。
文档说没有记录失败的假设,因为可能有很多单元测试由于配置的不同而不是必需的,所以我认为逻辑是日志中会有不必要的混乱,这是有道理的。
只是想知道如何/如果人们在JUnit中为失败的假设实现了输出消息。我唯一能想到的就是使用@TestInstance(Lifecycle.PER_CLASS)
注释单元测试类,并使用我设置前后假设的布尔标志,但这似乎是一个糟糕的设计。
答案 0 :(得分:1)
通常不会记录失败的假设,因为可能有很多 不适用于某些配置的测试。
关注全班Assume
而不是班级提供的可能性
您可以翻译它,因为您通常不应记录失败的假设。
只是想知道人们是如何实现输出消息的 在JUnit中失败的假设。
如果您因为不遵守假设而忽略测试,则意味着在某些情况下其执行并不重要。那你为什么要登录呢? 如果测试执行很重要,那么您就不会使用假设,并且通常会通过断言替换假设。
现在您有两种编写JUnit假设的方法:
public static void assumeTrue(boolean b)
public static void assumeTrue(String message, boolean b)
当然assumeFalse()
和assumeThat()
提供类似的口味。
最后,请注意在极端情况下使用假设(例如,您希望忽略某些方案的理论,或者您不熟悉运行时使用的环境)。所以我尽量避免它。