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



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

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

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

我正在使用 ASP.NET MVC 3。

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

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

大概您的模型类具有您想要隔离的依赖项或副作用......

在这种情况下,也许模型类做得太多了?

最新更新