【问题标题】:How to Reuse Unit Tests for Integration Tests如何为集成测试重用单元测试
【发布时间】:2011-09-01 17:39:57
【问题描述】:

我的应用程序有一个自定义服务器组件。

我们有一些用于业务逻辑的 JUnit 测试用例,使用 JMockit 来模拟 DB 层。

对于集成测试,我们最终要检查很多类似的条件。唯一的区别是我需要序列化内容并发送到套接字,而不是仅仅进行调用。

是否有任何(简单)方法来概括测试,以便我可以为两个测试指定一次这些条件?

【问题讨论】:

    标签: unit-testing testing junit integration-testing


    【解决方案1】:
     > Is there any (simple) way to generalize the tests so that I can 
     > specify those conditions once for both tests?
    

    您可以将测试放入具有构造辅助对象的虚拟 FactoryMethod 的基类中。

    您的 unittest 和 integrationtest 继承自该类。 FactoryMethod 的实现创建了一些模拟对象或一些真实对象。

    【讨论】:

      【解决方案2】:

      您可以将规则添加到可以从集成测试和单元测试中引用的文件中。

      你应该用某种领域特定的语言编写它,非技术利益相关者可以阅读但也可以解析,例如:

      discount: 10% for: orders over $10
      discount: 20% for: orders over $40
      discount: 30% for: orders over $100
      

      【讨论】:

        【解决方案3】:

        您的单元和集成测试只是另一段代码,需要应用您对主流代码的标准概念。因此,编写可重用代码、使用设计模式、对接口进行编码以及最终持续重构之类的事情也适用于测试。

        关注 SO 线程有更多建议:

        1. Re-using code in unit tests
        2. Unit-Test, Integration test or problem in design?

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-05
          • 1970-01-01
          • 2011-12-02
          • 1970-01-01
          相关资源
          最近更新 更多