我正在为消息传递系统编写集成测试。大多数测试在流程的各个阶段收集端口到端的messgaes及其各种代码路径的计数。我目前的测试已经过于干扰了,因为我在这些消息传递组件中有很多public static AtomicInteger
- 我在处理消息时增加它们 - 测试然后在这些计数上断言。
更糟糕的是,在部署到易于添加错误的产品时,我将不得不删除这些计数器。
如何设计我的测试,以便获得通过这些组件的消息计数,而不需要在我的类中实际填充计数器?我正在考虑对实际组件进行子类化并重写方法,并在子类方法中移动计数器 - 并在我的测试中使用这些子类 - 关于更好设计的任何其他想法?
答案 0 :(得分:1)
使用仅在测试中使用的静态AtomicInteger
来分散代码当然是个坏主意。我建议采用以下几种方法:
答案 1 :(得分:1)
前段时间我不得不处理完全类似的情况。我有几个组件处理一些消息,然后将它们传递给其他组件。我想出了这个设计:
notify
方法,用于通知并将收到的消息传递给其他组件