我有一个使用断言的 jUnit 测试(我们称之为 T1)。为了使该断言具有任何价值,我需要该断言正确的验证器。
对于验证器,我在另一个测试套件中有一个测试(T2)。我能以某种方式使 T2 成为 T1 的先决条件吗?
如果这不可能,如果 T1 和 T2 在同一个套件中,是否有可能?
我有一个使用断言的 jUnit 测试(我们称之为 T1)。为了使该断言具有任何价值,我需要该断言正确的验证器。
对于验证器,我在另一个测试套件中有一个测试(T2)。我能以某种方式使 T2 成为 T1 的先决条件吗?
如果这不可能,如果 T1 和 T2 在同一个套件中,是否有可能?
您考虑在未发生先决条件时跳过单元测试。通过编码逻辑跳过单元测试是危险的,因为您不会看到是否有任何问题,您的代码甚至没有得到测试覆盖率。当一个基本部分被破坏时,最好让更多的测试失败,而不是隐藏错误。请注意,我们正在谈论单元测试,它应该是独立的并测试小块软件。
您可以使用标准具验证器,它不是生产代码的一部分,但必须是一个简单的测试实用程序,它不会阻止测试确定运行。最糟糕的是,您的代码中可能存在另一个错误,未连接到验证器,这可能会延迟出现,只是因为测试代码由于先决条件而跳过了关键代码部分。
如果您想真正进行集成或功能测试,您应该考虑使用除 JUnit 之外的其他测试框架。在集成测试中,有时跳过其余的测试并停止滥用集成环境几分钟/几小时后,明确的开始是有意义的,但在单元测试中,重点是每一段代码都必须得到控制。
当然,您也可以在 JUnit 中破解前提条件,例如在 @BeforeClass/setUp 夹具中进行断言或将“if”分支放入测试中,但它们会欺骗您。
您可以评论 T1 并解释它依赖于 T2 才能通过,如果 T2 也失败了,则应在解决 T1 之前先修复它