【发布时间】:2011-09-01 17:39:57
【问题描述】:
我的应用程序有一个自定义服务器组件。
我们有一些用于业务逻辑的 JUnit 测试用例,使用 JMockit 来模拟 DB 层。
对于集成测试,我们最终要检查很多类似的条件。唯一的区别是我需要序列化内容并发送到套接字,而不是仅仅进行调用。
是否有任何(简单)方法来概括测试,以便我可以为两个测试指定一次这些条件?
【问题讨论】:
标签: unit-testing testing junit integration-testing
我的应用程序有一个自定义服务器组件。
我们有一些用于业务逻辑的 JUnit 测试用例,使用 JMockit 来模拟 DB 层。
对于集成测试,我们最终要检查很多类似的条件。唯一的区别是我需要序列化内容并发送到套接字,而不是仅仅进行调用。
是否有任何(简单)方法来概括测试,以便我可以为两个测试指定一次这些条件?
【问题讨论】:
标签: unit-testing testing junit integration-testing
> Is there any (simple) way to generalize the tests so that I can
> specify those conditions once for both tests?
您可以将测试放入具有构造辅助对象的虚拟 FactoryMethod 的基类中。
您的 unittest 和 integrationtest 继承自该类。 FactoryMethod 的实现创建了一些模拟对象或一些真实对象。
【讨论】:
您可以将规则添加到可以从集成测试和单元测试中引用的文件中。
你应该用某种领域特定的语言编写它,非技术利益相关者可以阅读但也可以解析,例如:
discount: 10% for: orders over $10
discount: 20% for: orders over $40
discount: 30% for: orders over $100
【讨论】:
您的单元和集成测试只是另一段代码,需要应用您对主流代码的标准概念。因此,编写可重用代码、使用设计模式、对接口进行编码以及最终持续重构之类的事情也适用于测试。
关注 SO 线程有更多建议:
希望对您有所帮助。
【讨论】: