我读过很多关于单元测试的文章。 大多数文章说我们不应该在测试中使用多个模拟对象,但我不明白为什么。 有时我们在测试中确实需要多个模拟对象。
答案 0 :(得分:5)
根据上下文,您可以在单元测试中使用多个模拟。
但是我认为“文章”可能暗示的是
答案 1 :(得分:3)
我不确定你所引用的是哪些文章,但我通常每个依赖项都有一个模拟对象用于被测试的类。
答案 2 :(得分:3)
您应该根据需要添加尽可能多的模拟以隔离您正在测试的课程。对于不应该成为测试一部分的每个依赖项,您都需要一个模拟。
为了简单起见,有时你会在测试中放入两到三个类,因为它们构建类似于组件的东西并且高度耦合。其他一切都应该被嘲笑。
我知道这个“最佳实践”只有一个模拟而且也不理解它。在我们的单元测试中,我们有很多模拟,一些环境模拟是由我编写的测试框架设置的(例如,TransactionService,SecurityService,SessionService)。只有一件事需要考虑,正如Gishu在他的回答中已经提到的,许多嘲讽都表明了高依赖性。这取决于你什么时候太多了。我们有许多小接口,在测试中需要很多模拟。
要解决问题,您应该不在以下情况下模拟依赖关系: