小编D3v*_*D3v的帖子

如何使用Moq使用JSON主体创建模拟HTTP post请求

我正在尝试基本上做标题所说的为了对我的api控制器进行单元测试,但我找不到合适的方法并且无法承担花费太多时间.这是我的代码.

[TestMethod]
public void Should_return_a_valid_json_result()
{
    // Arrange
    Search search = new Search();
    search.Area = "test";
    string json = JsonConvert.SerializeObject(search);

    var context = new Mock<HttpContextBase>();
    var request = new Mock<HttpRequestBase>();

    request.Setup(r => r.HttpMethod).Returns("POST");
    request.Setup(r => r.InputStream.ToString()).Returns(json);

    context.Setup(c => c.Request).Returns(request.Object);

    var controller = new UserController();
    controller.ControllerContext = new HttpControllerContext() {  RequestContext = context };

   //more code

}
Run Code Online (Sandbox Code Playgroud)

最后一行返回错误CS0029无法将类型'Moq.Mock System.Web.HttpContextBase'隐式转换为'System.Web.Http.Controllers.HttpRequestContext'.

我也不确定我应该使用的Moq语法,其他问题,示例和Moq文档对我没什么帮助.

c# json unit-testing moq asp.net-web-api

1
推荐指数
2
解决办法
3204
查看次数

标签 统计

asp.net-web-api ×1

c# ×1

json ×1

moq ×1

unit-testing ×1