如何在JUnit中订购共享相同代码而不是状态或数据的测试类?

时间:2012-04-20 07:37:40

标签: testing junit

我想订购不共享任何州的测试。

示例:有测试类CreateFile和DeleteFile。

DeleteFile测试使用与CreateFile相同的代码。因此,如果CreateFile失败,则没有必要花时间尝试运行DeleteFile。 DeleteFile启动不会提供任何新信息。它最终会出现同样的错误。

让我们JUnit跳过它们。

1 个答案:

答案 0 :(得分:1)

您正在尝试将依赖项引入测试代码中。根据设计,JUnit不支持测试之间的依赖关系。您可以尝试TestNG,它特别允许依赖。

依赖性与优化

实际上,你提出的是测试的优化,而不是测试之间的依赖关系。您不希望运行(删除)测试,因为您知道它将失败。创建测试的结果不会影响删除测试的结果。

两个测试之间的依赖关系更像是'我需要测试xxx才能运行测试yyy',因为测试xxx执行测试yyy的设置。

您可以在两种情况下使用TestNG,但我更喜欢在测试之间没有依赖关系。因此,您的所有设置都将通过@Before或@BeforeClass完成。然后你总是可以在Eclipse或其他任何地方运行一个测试。事实上,对于您的情况,创建文件可能无法正常工作,但删除会通过临时文件系统问题执行。