【发布时间】:2014-12-12 19:12:13
【问题描述】:
我正在做一些 Junit 测试,我需要知道如何运行一个测试类,只有当另一个类的特定测试通过时。
【问题讨论】:
-
理想情况下,您不应依赖其他测试用例来运行测试用例。将它们作为一个测试用例。
标签: java testing junit test-suite
我正在做一些 Junit 测试,我需要知道如何运行一个测试类,只有当另一个类的特定测试通过时。
【问题讨论】:
标签: java testing junit test-suite
JUnit 中有“类别”功能。 (见:https://github.com/junit-team/junit/wiki/Categories)
【讨论】:
这个问题已经在this post回复了
在@Before 函数中,您需要从系统中检索运行时值并检查它是否符合您的要求。如果不停止,一切都会停止
【讨论】:
恕我直言,即使在设计良好的集成测试套件中,这也是一种不好的做法。我会鼓励你重新考虑你的整体测试类设计。
如果这些测试真的是单元测试,那么它们应该是原子的并且彼此独立。请参阅this post 以获得良好的阅读体验。
话虽如此,我经常使用 JUnit 4.x 来构建和运行相当大的集成测试套件(测试 RESTful 服务响应的后端功能测试)。如果这是您的用例,我建议您重组您的测试,这样您在 TestClassA 中的一个测试永远不会依赖于 TestClassB 中的测试。这是一个坏主意,因为它会使您的测试更加脆弱。其他开发人员很难理解你的测试意图,作为一个整体。
当我发现我在多个测试类之间存在依赖关系时,我已经为两个测试类提取了一个“测试超类”,并在该超类中执行我的“设置工作”。或者,您可以分解出一个包含静态方法的实用程序类,用于创建一些复杂的测试条件。
但是,即使使用 JUnit 作为工具来运行此类“集成”测试,也应该谨慎且谨慎地进行。
【讨论】: