首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用fragile框架进行的糟糕的JUnit测试具有脆弱的Thread.sleep()调用。怎么修?

使用fragile框架进行的糟糕的JUnit测试具有脆弱的Thread.sleep()调用。怎么修?
EN

Stack Overflow用户
提问于 2010-12-13 20:57:00
回答 3查看 752关注 0票数 0

我最近加入了一个小组,有一些严重的JUnit测试问题。一个问题是8分钟长的测试!测试有几个部分;每个部分调用org.springframework.context.ApplicationEventPublisher.publishEvent(),然后调用不同时间的Thread.sleep(),然后测试条件。

这种方法有几个明显的问题,Thread.sleep()调用的时间很脆弱:

  • 测试偶尔在繁忙的机器上失败;以及
  • 考试失败的时间太长了。

是否可以访问处理这些事件的池进行测试,是否有调用来查看事件级联是否已停止运行?

EN

Stack Overflow用户

发布于 2010-12-13 21:02:34

值得一提的是,实际上调用外部服务的测试代码是集成测试,而不是单元测试。如果您在这里进行真正的单元测试,您应该用模拟替换这些调用。这样,您就可以更好地控制返回到业务逻辑的值,并测试特定条件。而且,正如您所看到的,这几乎消除了由于外部(非代码)情况而产生的假阳性。显然,这些测试并没有失败,他们期望使用的工具是。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4433423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档