单元测试包装器对象?

时间:2013-05-07 08:07:23

标签: unit-testing tdd

我尝试尽可能多地使用TDD。当我这样做的时候,我会把所有与外面的通信装在包装课上。几分钟前,我为静态类Directory创建了一个包装器,因此我可以在不与实际文件系统通信的情况下测试我的其他代码。

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

1 个答案:

答案 0 :(得分:15)

我倾向于做同样的事情而不用担心单元测试包装类,只要我满意自己它们只包含最少量的代码。如果在我的情况下,我在Directory类上调用了许多方法,那么我将创建一个包含我将使用的每种方法的接口,以确保我能够进行多少测试尽可能测试我的系统的行为。

只要您使用集成和/或验收测试,也不要直接对您的包装类进行单元测试。如果您尝试直接测试Directory,那么无论如何它都是一个集成测试。我会问自己,如果我要从代码中删除与Directory类的交互,我是否在某个级别进行了自动测试会失败。

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