我可以使用Junit测试作为另一个Junit测试的前提条件

时间:2011-10-28 08:50:17

标签: java junit4 preconditions

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

对于验证器,我在另一个测试套件中进行了测试(T2)。我可以以某种方式使T2成为T1的先决条件。

如果不可能,如果T1和T2在同一个套件中,是否可能?

3 个答案:

答案 0 :(得分:2)

我在这个帖子中找到了:

How can I specify JUnit test dependencies?

似乎JUnit的扩展允许描述JUnit测试之间的依赖关系:

https://github.com/junit-team/junit.contrib/tree/master/assumes

答案 1 :(得分:1)

您考虑在未发生前提条件时跳过单元测试。通过编码逻辑跳过单元测试很危险,因为您不会看到是否存在任何问题,并且您的代码甚至无法获得测试覆盖率。当一个基本部分被破坏时,最好不要通过更多的测试,而不是隐藏错误。请注意,我们讨论的是单元测试,它应该是独立的,并测试小块软件。

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

如果你想真正进行集成或功能测试,你应该考虑使用甚至比JUnit更多的测试框架。在集成测试中,有时可以跳过剩下的测试,并在明确搞定的开始之后停止滥用集成环境几分钟/小时,但在单元测试中,主要的一点是代码的每一部分都必须得到控制。 / p>

当然你也可以在JUnit中破解前提条件,例如在@ BeforeClass / setUp fixture中制作一个asserion或者将'if'forks放入测试中,但它们会欺骗你。

答案 2 :(得分:0)

您可以对T1进行评论,说明它依赖于T2传递,如果T2也失败,则应该先修复T1,然后才能解决T1