我是整个单元测试的新手,所以请原谅我缺乏经验.我读了很多材料说没有测试应该依赖别人去做,即单元测试完全是彼此独立的.你真的能在现实中做到吗?我有以下示例:我有一些实体类相互依赖,基于某个数据库模式(我使用
Linq-to SQL生成它们)现在,如果我想测试每个模型类,我必须构建模型类的一个对象,构建每个依赖项的测试对象,将它们分配给对象的属性,然后在检查上下文并断言它实际工作之前保留该对象.
这显然使得更难以进行不依赖于彼此的测试,或者不以特定的顺序运行(我没有在至少有一个ContentType类型的实例之前创建Content类型的实例)依赖,至少在模型水平上存在并且无法避免.
如果你认为我错了,请批评我很多.我想学习.
附:只是提到我正在研究ASP.NET MVC应用程序并使用NUnit进行测试,如果这是有道理的
解决方法
是的,你真的可以在现实中做到这一点.
能够隔离每个单元的关键是编写松散耦合的代码.依赖于LINQ to SQL(L2S)类并不是松散耦合,这解释了您的问题.
最好定义一组可以隐藏L2S代码的接口.然后,域模型可以在这些接口上工作,而不是直接在L2S类上工作.