手工编码的存根应该进行单元测试吗?

时间:2014-09-18 15:15:45

标签: unit-testing language-agnostic

在一个不能使用模拟框架的环境中,手工编码的存根和假货(等)本身应该进行单元测试吗?

例如,假设我有一个伪记录器类,它记录到内存而不是文件。假的非常简单 - 它只记录了日志消息 - 但是如果它仍然是经过单元测试的手工编码吗?

3 个答案:

答案 0 :(得分:0)

在全球范围内,任何未经测试的代码都是未来死亡的。所以我建议你测试所有编写代码的任何部分的用法。在测试驱动的开发理念中,您将确保在任何更改后这部分代码都是正确的。

在Python中,我使用doctests而不是真正的单元测试来测试unittest实用程序。

它允许我拆分应用程序测试和测试实用程序测试。并在docstring中为开发人员提供concret帮助。

Doctest official doc

答案 1 :(得分:0)

不,没有必要单独测试它们。您的单元测试和测试代码将作为彼此的测试

如果您正在使用测试驱动开发(TDD),红绿色重构循环的红色阶段也会测试您的存根。

答案 2 :(得分:0)

我认为这是其中一个令人烦恼的情况。通常我不会为手卷存根编写测试,并且100%同意@Raedwald使得单元测试和存根应该基本上作为彼此的测试。然而,在某些情况下,这样做是正确的,例如:

  • 当测试依赖于任何类型的条件逻辑时(例如,存根根据提供的输入计算输出),那么单独验证它可能是有用的。我并不是说将条件逻辑放在存根中是一种很好的测试实践,但在某些情况下可能会有用。
  • 当存根被用于更大规模的集成测试时,因为在这种环境中确定测试失败的根本原因可能要困难得多,如果根本原因是编码不良的存根则特别令人沮丧

总而言之,如果你的直觉告诉你这是一个好主意,我不会认为对它们进行单元测试是不好的做法,但它肯定不是世界末日如果你不打扰。我不会过多地决定这个决定。