我正在为ASP.NET MVC控制器方法编写单元测试。我应该在单元测试中使用AutoMapper吗?
这些控制器对IMapper
有依赖关系 - 我创建的一个接口用于抽象AutoMapper,它是使用Castle Windsor通过构造函数注入传入的。
操作方法使用IMapper
从域对象映射到ViewModel对象并再次返回,旨在保持干净并保持操作方法简洁。
在我的单元测试,我
配置AutoMapper用正确的绑定(他们使用AutoMapper配置文件,所以可测试和网站和单元测试项目之间重复使用内置),并应通过在作为适当的AutoMapper实现
IMapper
。传递模拟对象(我使用Moq)为
IMapper
实例,具体取决于测试(这将意味着在测试设置代码中复制一些工作以确保从模拟映射器返回的对象与模拟映射器假装映射的对象)。手动配置AutoMapper只有映射我想我需要每个测试(很多工作和手段我没有测试将真正使用的映射)。
在单元测试中使用基础结构代码有什么意见?它在什么时候成为集成测试(即测试AutoMapper和我的控制器的集成)?
感觉就像2是纯粹的视图,虽然我认为我需要更多地了解Moq以及如何让它返回与传递给它嘲笑的方法的实际值有关的值。
如果您使用存储库模式,我可以指出您... http://rileytech.net/post/2010/08/17/Mock-Utility-creating-those-basic-services.aspx - - 使用最后两个文件或将其用作完整示例:-) – jeriley 2011-01-12 13:23:38