单元测试包装器对象?

Mor*_*ten 17 tdd unit-testing

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

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

lev*_*nis 15

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

只要您使用集成和/或验收测试,也不要直接对您的包装类进行单元测试.如果您尝试Directory直接测试它仍然是集成测试.我会问自己,如果我Directory要从代码中删除与类的交互,我是否在某种程度上进行了自动化测试会失败.

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

  • 只是想指出你不应该_really_争取100%的单元测试覆盖率.你不能对你的系统=边界代码进行单元测试(如上所述,它本质上是一个集成测试).此外,您的包装类应该尽可能简单和简单,只不过是传递给包装对象. (2认同)
  • 同意 - 只要测试了所有期望的行为,加上尽可能多的边缘情况,然后继续为覆盖范围编写测试不会提供最大的附加价值 (2认同)