静态方法和单元测试

and*_*ier 7 c++ unit-testing

我一直在读,使用TDD时往往会避免使用静态方法,因为它们往往难以模拟.我发现,单元测试最简单的方法是一个具有简单功能的静态方法.不必实例化任何类,鼓励简单,做一件事,"独立"等方法.

有人可以解释TDD最佳实践和务实轻松之间的差异吗?

谢谢

Lau*_*ves 15

静态方法很容易测试,但直接调用静态方法的东西通常不容易独立于它依赖的静态方法进行测试.使用非静态方法,您可以使用存根/模拟/假实例来简化测试,但如果您正在测试的代码调用静态方法,则它实际上与该静态方法"硬连线".

  • @Martin:谢谢,我知道这个词,虽然它比我在这里得到的更为笼统.常用术语通常最终会失去意义,因为人们(ab)非常使用它们,所以我选择在这里使用一个比喻,希望它更清楚. (2认同)