0

我在控制器中使用 AutoMapper 将我的模型对象映射到我的 ViewModel 对象。Unity 在我的控制器中注入了一个 IMappingEngine 对象,并且映射配置在 global.asax 中完成。

在我的控制器的单元测试中,我应该如何模拟在构造函数中作为参数传递的 IMappingEngine ?

我是否必须在单元测试项目中再次设置所有映射配置?

4

2 回答 2

1

如果您通过使用接口抽象 AutoMapper,那么您不必在单元测试中使用 AutoMapper。这是一个单元测试,因此您只测试控制器操作中的代码。您需要做的就是使用像 RhinoMocks 或 Moq 这样的模拟框架并模拟您的测试所需的行为。使用 RhinoMocks 你会得到这样的东西:

var mapper= MockRepository.GenerateStub<IMappingEngine>();

然后使用 mapper.Stub 添加您需要的行为。

于 2013-01-31T17:08:52.940 回答
0

为什么首先要注入 AutoMapper?

由于您的控制器(ViewModels)的输出取决于映射,您的测试应该测试什么?

我怀疑您的代码中有太多抽象。直接使用 AutoMapper 没有任何问题。

于 2013-01-31T16:28:38.057 回答