我有一系列单元测试都需要与 Apache Zookeeper 服务器通信。显然,如果我有一个用于模拟服务器连接的库(或一个简单的方法来滚动我自己的),那将是最佳的,但据我所知,此时不存在,并且引擎盖下有足够的移动部件让我犹豫手动尝试。
因此,到目前为止,我们的解决方案是在本地建立一个虚拟服务器,执行测试,然后在最后将其拆除。这种工作,虽然据我所知,没有简单的方法告诉 Surefire 在整个测试运行中做一次 - 充其量,我有@BeforeClass
和@AfterClass
装饰。
Zookeeper 初始化过程将原本应该是几毫秒的测试运行时间变成了每班几秒钟,这对整个项目来说是几分钟。如果我可以设置测试,让它建立一个服务器,运行每个测试,然后将其拆除,我想我会看到至少一个数量级的加速。
有简单的解决方法吗?我会以错误的方式解决这个问题吗?如果有一个现有的 mock-zookeeper 库,或者我自己的一个简单的方法,那也是一个很好的解决方案。