在进行TDD时,应该测试静态工厂吗?

本文关键字:静态 测试 工厂 TDD | 更新日期: 2023-09-27 18:02:13

我知道在TDD中,您应该避免编写事先没有测试过的代码,但我想知道这是否是为了简单起见而打破规则的时候之一(避免为测试目的而测试第三方库的包装器,例如网关模式)。我目前正在测试它们,像这样:

[TestMethod]
public void CreateShouldReturnANewInstance()
{
        var tcpClientMock = new Mock<ITcpClient>();
        var spooler2 = OutboundMessageSpooler.Create(tcpClientMock.Object);
        Assert.IsTrue(spooler2 != null && spooler2 is OutboundMessageSpooler);
}

在进行TDD时,应该测试静态工厂吗?

您编写的测试给我的印象是一个很好的测试,但不是一个非常重要的测试。有这么一点功能可以从TCP客户端创建假脱机程序,这个测试演示了该功能单元的工作原理。这是驱动这部分功能的好方法—它以前不能工作,您用红色测试进行了演示,您编写了方法,现在它可以工作了。酷。有必要吗?可能不会。对回归有用吗?同样,可能不会。作为测试未来更复杂的逻辑的模型有用吗?也许。

我不会建议你不写这样的测试——毕竟,它们很容易写,而且可以帮助你思考你想要如何实现这个特性——TDD到底是什么——但我可能也不会敦促你去写它们。看看它对您的帮助有多大,如果答案是"不大",请将您的测试驱动资源花在其他地方。