【问题标题】:What is the correct terminology & best practice for common fixtures between test classes?测试类之间常见固定装置的正确术语和最佳实践是什么?
【发布时间】:2010-06-22 10:31:43
【问题描述】:

我了解在 Junit 4 中,@Before 可用于为测试类的多个测试方法设置测试夹具。

但是,在我的系统中,我希望有一些常见的测试对象可用于所有测试。

这些对象最合适的名称是什么?存储它们的最佳做法是什么?

【问题讨论】:

  • 对假货/存根有一个单独的项目(我猜你的情况是包)。让它们是静态的

标签: java unit-testing testing junit


【解决方案1】:

最好的做法是在夹具中创建它们以保持测试隔离,除非它们的状态没有被测试改变(例如记录器)。否则,可能会在测试之间产生副作用:一项测试因另一项测试而失败,或者相反。

【讨论】:

    【解决方案2】:

    肯定有在测试用例之间共享一些数据的用例。 JUnit 为此提供了@BeforeClass 注解。希望能帮到你……

    http://junit.sourceforge.net/javadoc/org/junit/BeforeClass.html

    【讨论】:

    • 请注意,任何 BeforeClass 方法都必须是静态的。这可能不是问题,但可能会导致您在类中混合使用静态和非静态成员。没什么大不了的,但可能不是最干净的代码。
    【解决方案3】:

    常用测试对象的首选名称将取决于这些对象的真正含义(除非您提供更多详细信息,否则我无能为力)。如果您想在所有测试之间共享一个对象,那么它在您的测试类中必须是静态的(JUnit 将在每次测试之前重新创建测试类)。

    【讨论】:

      【解决方案4】:

      为什么没有一个抽象的 BaseTest 超类来保存公共对象并在构造函数或 @BeforeClass 方法中初始化它们?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-09
        • 1970-01-01
        • 2011-04-21
        • 2010-09-17
        • 2012-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多