Java 我可以使用Junit测试作为另一个Junit测试的先决条件吗

Java 我可以使用Junit测试作为另一个Junit测试的先决条件吗,java,junit4,preconditions,Java,Junit4,Preconditions,我有一个jUnit测试(我们称之为T1),其中我使用了一个断言。为了使该断言具有任何价值,我需要验证程序使该断言正确 对于验证器,我在另一个测试套件中有一个测试(T2)。我可以把T2作为T1的先决条件吗 如果这是不可能的,那么如果T1和T2在同一个套件中,是否有可能呢?您可以对T1进行注释,解释说它依赖于T2通过,如果T2也失败,那么在处理T1之前应该先修复它。您考虑在没有先决条件的情况下跳过单元测试。通过编码逻辑跳过单元测试是危险的,因为您不会看到是否有任何问题,您的代码甚至没有得到测试覆盖。

我有一个jUnit测试(我们称之为T1),其中我使用了一个断言。为了使该断言具有任何价值,我需要验证程序使该断言正确

对于验证器,我在另一个测试套件中有一个测试(T2)。我可以把T2作为T1的先决条件吗


如果这是不可能的,那么如果T1和T2在同一个套件中,是否有可能呢?

您可以对T1进行注释,解释说它依赖于T2通过,如果T2也失败,那么在处理T1之前应该先修复它。

您考虑在没有先决条件的情况下跳过单元测试。通过编码逻辑跳过单元测试是危险的,因为您不会看到是否有任何问题,您的代码甚至没有得到测试覆盖。当基本部件损坏时,与其隐藏错误,不如通过更多的测试。请注意,我们讨论的是单元测试,单元测试应该是独立的,并测试软件的小部分

您可以使用标准具验证器,它不是生产代码的一部分,但必须是一个简单的测试实用程序,它不会阻止测试运行。最糟糕的是,您的代码中可能存在另一个未连接到验证器的错误,这可能会延迟出现,因为测试代码由于先决条件跳过了关键代码部分

<>如果您想在实际中进行集成或功能测试,您应该考虑使用甚至超过JUnit的另一个测试框架。在集成测试中,有时跳过其余的测试并在一个明确的错误开始后几分钟/小时内停止滥用集成环境是有意义的,但在单元测试中,主要的一点是每一段代码都必须得到控制


当然,您也可以在JUnit中破解前提条件,例如在@BeforeClass/setUp fixture中创建asserion,或者在测试中使用“if”分叉,但它们会愚弄您。

您为什么要这么做?问题就在这里。为了澄清:我有一个过滤器,我在T1中对(T2)进行了单元测试,我使用该过滤器验证T1中的断言,类似于assertEquals(过滤器(未过滤),实际);因此,如果T2没有通过,那么T1是否通过其实并不重要,因为它无论如何都不是一个有效的测试。不,我确实没有考虑跳过单元测试,这更像是一个错误定位问题。我可以通过在给定的测试中声明前提条件来完成同样的事情,但是我会运行相同的测试两次,这会很好地避免。很好,很简单:),但技术性不强