如何将单元测试重新用于集成测试

问题描述

| 我的应用程序具有一个自定义服务器组件。 我们有一些JUnit测试用例用于业务逻辑,并具有JMockit来模拟数据库层。 对于集成测试,我们最终要检查很多类似的条件。唯一的区别是,我需要序列化内容并将其发送到套接字,而不仅仅是打电话。 有没有什么(简单)的方法可以泛化测试,以便我可以为两个测试指定一次这些条件?     

解决方法

 > Is there any (simple) way to generalize the tests so that I can 
 > specify those conditions once for both tests?
您可以使用构造帮助程序对象的虚拟FactoryMethod将测试放入基类中。 您的单元测试和集成测试都从该类继承。 FactoryMethod的实现会创建一些模拟对象或一些实际对象。     ,您可以将规则添加到文件中,以供集成测试和单元测试参考。 您应该以某种领域特定的语言来编写它,非技术利益相关者可以阅读但也可以对其进行解析,例如:
discount: 10% for: orders over $10
discount: 20% for: orders over $40
discount: 30% for: orders over $100
    ,您的单元测试和集成测试只是另一段代码,您需要将这些代码应用于主流代码。因此,诸如编写可重用代码,使用设计模式,对接口进行编码以及最终进行连续重构之类的测试同样适用。 以下SO线程有更多建议: 在单元测试中重用代码 单元测试,集成测试还是设计中的问题? 希望能有所帮助。