事情从我的假存储库开始很简单,其中包含硬编码的实体列表。ASP.NET MVC单元测试 - 假库已变得笨拙
随着我的进步,我的共享虚假资料库变得臃肿。我不断地向这些列表添加新的属性和新的实体。这使得维护非常困难,而且很难看到测试正在做什么。我相信这是一种称为“General Fixture”的反模式。
在研究ASP.NET MVC单元测试中,我看到了两种方法来准备传递给控制器的存储库设备。
- 创建将在所有的测试中共享
- 存储库的模拟部分,每个部分的测试
我很想去探索选项#2以上之内,但我读过硬编码的假库模拟仓库并不是一个好主意,在我测试控制器对集合进行操作的场景中(例如,使用分页/排序/过滤功能),这似乎相当艰巨。
我对社会问题...
准备仓库灯具方法的工作远远超出了基本的例子是什么?
这些都是很好的答案。自从我发布此问题以模拟单个测试的存储库并且运行良好以来,我一直在使用Moq。我相信按照您的建议使用两种方法都是有效的。我也发现创建例程生成用于模拟的数据非常有用 - 这样我就不会复制代码来创建数据,但数据也不会共享。 :) – Mayo 2010-11-30 15:53:29