我有一个 mvc 应用程序。我需要为该应用程序编写单元测试用例。在此应用程序的控制器中,我从会话中读取对象
objectclass Obj = (objectclass)Session["Object"];
我需要使用 Shims/Stubs 来伪造对对象的读取。
我有一个 mvc 应用程序。我需要为该应用程序编写单元测试用例。在此应用程序的控制器中,我从会话中读取对象
objectclass Obj = (objectclass)Session["Object"];
我需要使用 Shims/Stubs 来伪造对对象的读取。
您可以创建一个方法来访问会话数据并像这样模拟它。创建一个接口。
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");