我正在开发一个 asp.net mvc 3.0 应用程序。在对我的 Controller 中的一种操作方法进行单元测试时,我遇到了一个错误。
如何模拟:Request.Params["FieldName"]
我已经包含了 Moq 框架,但不确定如何传递值
这是我的代码...请建议...
var request = new Mock<System.Web.HttpRequestBase>();
request
.SetupGet(x => x.Headers)
.Returns(
new System.Net.WebHeaderCollection
{
{"X-Requested-With", "XMLHttpRequest"}
});
var context = new Mock<System.Web.HttpContextBase>();
context.SetupGet(x => x.Request).Returns(request.Object);
ValidCodeController target = new ValidCodeController();
target.ControllerContext =
new ControllerContext(context.Object, new RouteData(), target);
最佳答案
Params
是一个 NameValueCollection
属性,其设置方式与 Headers
类似:
var requestParams = new NameValueCollection
{
{ "FieldName", "value"}
};
request.SetupGet(x => x.Params).Returns(requestParams);
关于c# - 如何在单元测试 asp.net mvc 应用程序中模拟请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20377907/