19

我尝试尽可能多地使用 TDD。当我这样做时,我会将与外部的所有通信都存放在包装类中。几分钟前,我为静态类制作了一个包装器Directory,这样我就可以在不与实际文件系统对话的情况下测试我的其他代码。

但是对包装器本身进行单元测试呢?因为我使用 TDD,所以我没有为它编写测试。另一方面,它是一个包装器,没有别的,所以我真的需要吗?

4

1 回答 1

18

我倾向于做同样的事情并且不担心单元测试包装类,只要我确信它们包含最少的代码量。如果像你的情况一样,我在类上调用了许多方法Directory,我会创建一个接口,其中包含我将使用的每个方法,以确保我能够测试我的行为尽可能的被测系统。

只要您还使用集成和/或验收测试,就可以不直接对您的包装类进行单元测试。如果您尝试Directory直接测试,无论如何它都是集成测试。Directory我会问自己,如果我要从我的代码中删除与类的交互,我是否有一个在某种程度上会失败的自动化测试。

请记住,您通常被迫编写包装类的原因是因为您尝试测试的代码本质上不是可测试的,并且是无法模拟的依赖项。创建包装类允许模拟该行为。

于 2013-05-07T08:45:19.333 回答