为不再存在的功能添加单元测试

时间:2018-01-18 11:03:36

标签: c# unit-testing software-design

我们参与质量保证,作为此流程的一部分,我们对第三方开发公司编写的代码进行审核。

其中一名团队成员对一些单元测试提出了评论,这些测试是在对现有代码进行功能性更改的背后编写的。通常,这是预期的,通常我们必须提出关于这些测试没有被添加或更新的评论。

问题的功能变化是完全删除2种方法。这不是一个添加选择性逻辑的改变,这意味着它不会在某些情况下运行,它被完全删除。

有问题的开发人员添加了单元测试,包括在WCF服务模拟上设置单个期望并声明它未被调用。

在某些方面,信用是到期的,但在我们看来,单元测试完全是多余的,并没有增加任何价值,因此提出了评论并删除了测试。随后对此进行了讨论,并最终作为后期实施讨论点落实到我的桌面上。

我倾向于同意,测试代码甚至不存在的重点是什么。你在哪里画线,当然如果你开始沿着那条路走,你需要做所有的事情,但那是什么,它看起来像什么。

其中一条反馈评论是它被实施为负面测试,但对我来说仍然是针对测试存在的代码,而只是试图通过传递意外参数来打破它。

对其他人的意见感到好奇。

1 个答案:

答案 0 :(得分:1)

你可以很好地争论这类测试,特别是在安全相关的场景中 假设删除的方法意外公开,并打开安全漏洞 删除它们很重要,如果它们重新出现则会回归。换句话说:删除这些方法是安全漏洞被修复的方式,因此,测试是有保证的。

另一方面,如果通过删除这些方法没有修复任何问题 - 它们可能已被删除,因为它们已被弃用 - 不需要进行任何测试。