在单元测试的模拟对象中进行断言是一个好主意吗?

时间:2014-01-03 15:22:29

标签: unit-testing mocking

我正在测试使用第三方PBKDF2类来制作哈希的代码。我在测试中嘲笑这个对象。此类将多次迭代作为参数,这会增加散列所需的时间。在mock类中添加一个断言以检查是否正在传递正确的迭代次数是一个好主意,还是应该将一段数据添加到它返回的假哈希中,以便我的实际单元测试可以检查迭代计数?

1 个答案:

答案 0 :(得分:0)

确实,在模拟类中添加断言是个好主意,尽管这并不是大多数人所说的。这就是模拟对象应该如何工作,它们应该返回被测试类所需的数据,并验证被测试的类是否正在调用正确的函数并发送正确的信息。

但是,不要自己手动模拟这些类,这将永远需要你需要的所有情况。使用具有强大模拟能力的单元测试库,如x-unit库(可用于多种语言,php-unit,j-unit等)。这些库允许您轻松地模拟对象,设置期望值和返回值,而无需手动制作数百个不同的模拟。

如果模拟课程没有达到预期,那么考试就会失败,让你知道出了什么问题。