我正在为消息传递系统编写集成测试。大多数测试在流程的各个阶段收集messgaes及其各种代码路径端到端的计数。我目前的测试已经变得非常干扰,因为我在这些消息传递组件中有许多public static AtomicInteger
- 我在处理消息时增加它们 - 然后测试对这些计数作出断言。非侵入式集成测试
最糟糕的部分是,我将不得不在删除这些计数器时将其部署到易于增加错误的产品中。
我该如何设计自己的测试,以便通过这些组件传递消息的计数,而不需要在我的课程中实际填充计数器?我正在考虑对实际组件进行子分类并覆盖方法,并将子计数器移到子类方法中 - 并在我的测试中使用这些子类 - 关于更好设计的任何其他想法?
整套集成测试真的是最好的解决方案吗?如果你想测试内部,请在单元测试中进行。集成测试只能用于测试外部公开的功能。 – 2012-07-06 17:31:23
考虑到使用情况的数量,覆盖所有代码路径组合所需的单元测试数量变得过高 - 几乎会导致单元测试疲劳。端到端测试是强制性的。 – Bhaskar 2012-07-06 17:38:19
我不会删除跟踪系统执行统计信息的代码。您可以使用JMX公开这些信息,并设置监控以关注生产中的系统。我会尝试使用他人已经提供的建议来设计它。 – 2012-07-06 17:46:22