假设我们有一种方法,主要将各种其他方法连接在一起;并没有做很多自己的逻辑。假设它是服务层中服务类的典型成员,在域模型(业务)类,数据访问类和电子邮件实用程序/服务类中调用方法。
我发现为这种方法编写一个真正的单元测试需要大量的测试双重设置,而且这里测试的逻辑非常少。它似乎似乎如果我继续这样,成本将超过价值。我该怎么办?
答案 0 :(得分:3)
每单元测试不应该有多个模拟器。来自Roy Osherove的单元测试艺术(p.94):
在只测试一个的测试中 事(这就是我推荐你的方式 写测试),应该没有更多 比一个模拟对象。所有其他假货 对象将充当存根。有更多 每次测试通常意味着一次模拟 你测试的不止一件事, 这可能导致复杂或 脆弱的测试。
Here是一个相关的堆栈溢出问题,可能会有所帮助。
答案 1 :(得分:1)
在单元测试方面,我不是纯粹主义者。有一个收益递减点,其中创建和维护给定测试的成本可能大于您执行该测试所获得的收益。然而,关于这一点存在的地方,并没有严格的规则。
我选择为类似于你描述的代码编写单元测试。但是在大多数情况下,我确保底层对象(您将要模拟)具有针对它们运行的适当单元测试。然而,在存在大量内部逻辑的情况下,单元测试仍然是当时的顺序。
我认为这个问题没有正确答案,但希望我的评论可以帮助您了解如何以及是否应该对此进行单元测试。