我们有几个非常慢的 JUnit 测试,它们大量使用模拟,包括静态函数的模拟。单项测试需要 20-30 秒,整个“mvn 测试”需要 25 分钟。
我想分析时间浪费在哪里,但在分析方面经验很少。
我假设依赖模拟对象的初始化需要很长时间。
两个问题:
1)如何快速获取数字,哪些方法浪费了时间?我不需要复杂的高级用户工具,只需要一些基本的东西来获取数字。(证明我们所做的那种嘲笑是邪恶的)
2) 你知道哪些设计缺陷会产生如此糟糕的时序吗?我们测试应该调用模拟服务的支持 JSF 的 bean。也许支持 bean 中可能存在一些输入验证或未重构的业务逻辑,但无法更改(请不要对此发表评论;-))
广告 2)例如,一项测试有大约 30 个(!)类要准备使用 @PrepareForTest 进行测试。这不可能是好事,但我无法解释为什么。