我想测试一个复杂的工作流程,包括对其组件进行单元测试,以及对整个事物运行集成测试,而不必两次运行子组件。
例如,例程c
会处理a
和b
的结果。我想拥有以下测试套件:
a
并验证结果b
并验证结果a
和b
,验证其结果,然后运行c
并验证其结果,而无需重新运行a
和{ {1}} ,但重新使用输出运行每个组件需要一些时间,因此“每次运行所有内容”的明显解决方案是不切实际的。
代码在Scala中,但我不关心使用哪个测试框架 - scalatest,specs2,甚至TestNG,一切都很好,尽管我更喜欢Scala-ish解决方案。谢谢!
答案 0 :(得分:0)
“重复使用输出”意味着您的单元测试会产生一些工件,夜间集成测试将消耗这些工件。这可能是一种不好的做法,最终往往会伤害到你。除非那些测试确实需要花费大量时间,否则我会重复它们,或者找到更好的方法来验证它们的输出(DRYer测试,不要在任何地方测试相同的测试)