【发布时间】:2011-06-07 13:11:12
【问题描述】:
我正在为 ASP.NET MVC 控制器方法编写单元测试。
这些控制器依赖于 IMapper - 我创建的一个接口用于抽象 AutoMapper,使用 Castle Windsor 通过构造函数注入传入。
Action 方法使用 IMapper 从域对象映射到 ViewModel 对象并再次映射,旨在保持事物 DRY 并保持操作方法简洁。
在我的单元测试中,我应该
-
使用正确的绑定配置 AutoMapper(它们是使用 AutoMapper 配置文件构建的,因此可在网站和单元测试项目之间进行测试和重用)并将其作为
IMapper的正确 AutoMapper 实现传递。 为
IMapper实例传入模拟对象(我正在使用 Moq),具体取决于测试(这意味着在测试设置代码中重复一些工作以确保从模拟映射器返回的对象与模拟映射器假装映射的对象有关)。-
仅使用我认为每次测试所需的映射手动配置 AutoMapper(大量工作,这意味着我不会测试真正使用的映射)。
李>
对于在单元测试中使用基础架构代码有何看法?它在什么时候成为集成测试(即测试 AutoMapper 和我的控制器的集成)?
感觉 2 是纯粹的观点,但我认为我需要了解更多关于 Moq 以及如何让它返回与传递给它所模拟的方法的实际值相关的值。
【问题讨论】:
标签: c# unit-testing automapper