我最近加入了一个小组,有一些严重的JUnit测试问题。一个问题是8分钟长的测试!测试有几个部分;每个部分调用org.springframework.context.ApplicationEventPublisher.publishEvent(),然后调用不同时间的Thread.sleep(),然后测试条件。
这种方法有几个明显的问题,Thread.sleep()调用的时间很脆弱:
是否可以访问处理这些事件的池进行测试,是否有调用来查看事件级联是否已停止运行?
发布于 2010-12-13 21:02:34
值得一提的是,实际上调用外部服务的测试代码是集成测试,而不是单元测试。如果您在这里进行真正的单元测试,您应该用模拟替换这些调用。这样,您就可以更好地控制返回到业务逻辑的值,并测试特定条件。而且,正如您所看到的,这几乎消除了由于外部(非代码)情况而产生的假阳性。显然,这些测试并没有失败,他们期望使用的工具是。
https://stackoverflow.com/questions/4433423
复制相似问题