接口作为ASP.NET MVC中的控制器方法参数

时间:2012-06-16 14:00:31

标签: asp.net-mvc-3

我有一个控制器方法,它接受几个输入参数(字符串,整数等)。因为我不想在此方法中声明每个参数,所以我创建了一个具有映射到此参数的属性的类,现在该方法的唯一参数是此类的实例。调用该方法时,将根据其名称使用参数值填充对象的属性。

现在我想对这种方法进行单元测试;所以我想把这个类的模拟发送给方法。起初我创建了一个类的模拟并将其发送给方法;它工作得很好,除了我必须使用virtual关键字标记我想在mock中设置的所有属性,因此模拟框架可以访问它。
因为我认为我可以创建一个这个类实现的接口,但是不可能将接口作为参数发送到控制器方法。

以某种方式可以手动将输入参数绑定到对象的属性吗?例如,通过控制器的构造函数注入接口,然后触发一些输入值的手动绑定到属性?

我正在使用ASP.NET MVC 3。

1 个答案:

答案 0 :(得分:0)

如果我理解你正在尝试测试控制器并需要使用模型类的模拟。

我的第一个想法是,为什么你不能只使用模型类的实际实例?

据推测,您的模型类具有您想要隔离的依赖关系或副作用......

在这种情况下,模型类可能做得太多了吗?