番石榴EventBus单元测试

spe*_*eer 5 java junit guava

我有一个简单的Guava EventBus,有一个简单的事件和一个简单的监听器.我的问题是检查一旦事件发布后是否调用了侦听器方法的测试模式是什么.

Joh*_*n B 14

我建议测试EventBus正常工作不是你应该编写的UNIT测试.使用库(至少使用您信任的库)的一个优点是单元测试是由库提供程序编写的.因此,请不要浪费时间来验证Google员工是否正确编写了EventBus.要编写系统的单元测试,应该模拟EventBus,因此不会调用您的监听器.这是使用消息总线的优点之一,它允许隔离单独的应用程序问题,从而允许更容易的单元测试.

当您准备这样做时,它将是一个集成测试,测试整个系统是否一起工作.在某些情况下,这也可能是用JUnit编写的,但不认为它是单元测试.如何做到这一点取决于您的系统.您可以将Spring上下文加载到JUnit测试中,也可以部署应用程序并针对它运行测试.

  • 如果您的代码有条件地发布到EventBus,您需要能够验证在测试期间,EventBus确实使用正确的参数触发了所需的事件. (2认同)