在Rhino Mock中对ASP.Net MVC操作方法进行部分嘲讽



我是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吗?

您可以通过构造函数参数注入这些。只需编写将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/)它可以在控制器中注入您想要的任何东西(mock或normal类)。

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

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

最新更新