-1

我有一个 mvc 应用程序。我需要为该应用程序编写单元测试用例。在此应用程序的控制器中,我从会话中读取对象

 objectclass Obj = (objectclass)Session["Object"];

我需要使用 Shims/Stubs 来伪造对对象的读取。

4

1 回答 1

1

您可以创建一个方法来访问会话数据并像这样模拟它。创建一个接口。

interface ISessionHelper
{
    object GetSessionValue(string key);        

}

现在您可以使用任何模拟框架模拟方法调用。

Mock<ISessionHelper> sessionobj = new Mock<ISessionHelper>();
            sessionobj.Setup(a=>a.GetSessionValue(It.IsAny<string>())).Returns(new object());

将您的看到访问代码替换为

ISessionHelper obj = new SessionHelper();
obj.GetSessionValue("Object");
于 2016-05-02T09:42:55.170 回答