部分嘲笑Rhino Mock中的ASP.Net MVC动作方法?

时间:2012-08-04 03:54:52

标签: asp.net-mvc controller mocking rhino-mocks

我是Rhino的新手,想知道如何在类的方法中模拟局部变量/对象我也会嘲笑。在这种情况下,我将使用ASP.Net MVC控制器&行动方法。

这是控制器的样子,简化:

public class HomeController : Controller  {

   public myObjectType myMockedObject; //I want to mock this
   public myNonMockedObject;           //don't want to mock this
   public ViewResult Index() {
     //call various methods on the mocked and nonmocked members
     return View();
   }
}

换句话说,我想创建一个模拟家庭控制器并在其中模拟一些局部变量及其方法 - 但不是全部。这可能是使用Rhino吗?

1 个答案:

答案 0 :(得分:0)

您可以通过构造函数参数注入这些参数。只需编写以myObjectType作为参数的构造函数。在此构造函数中,只需初始化字段。

注1:如果要运行MVC,您还需要无参数ctro,或修改ConstructorFactory(例如此处https://www.codeproject.com/Articles/560798/ASP-NET-MVC-Controller-Dependency-Injection-for-Be)。或者只考虑使用一些可以在控制器(模拟或普通类)中注入任何内容的IoC容器(例如https://www.nuget.org/packages/Unity/)。

注意2:你应该从myObjectType类中提取一个接口并模拟该接口而不是具体的类(Rhino处理得更好)。

注3:我经常尝试将所有逻辑(并单独测试)放在控制器之外,因为测试控制器非常困难(你需要在那里初始化很多东西)涉及另一个嘲弄)。