0

JsonResult从我的控制器方法返回一个,即

public JsonResult deleteStuff()
{
    //Do some stuff
    Response.StatusCode = (int) HttpStatusCode.NoContent;
    return Json(new {}, JsonRequestBehavior.AllowGet);
}

我想编写一个测试来确认 JSON 数据是一个空对象并且 HttpStatus 是 204,但是我无法使用 TestStack 或直接从返回的对象获得结果。

例如:

var myResult =_administratorController.DeleteTheme(dummyId);

或者

 _administratorController
    .WithCallTo(x => x.DeleteTheme(dummyId))
    .ShouldReturnJson(x =>
        {
            Assert.That(HttpResultExtensions.ToResponseStatus(x), Is.EqualTo((int) HttpStatusCode.NoContent));
        });
    }
4

2 回答 2

0

JsonResult 不包含有关状态代码的信息。此信息可Response用于您在控制器操作中使用的对象。因此,在您的单元测试中,您可以简单地从那里读取它。我想您必须模拟它才能调用此控制器操作,因此您已经引用了它。

于 2013-09-04T08:15:39.267 回答
0

你不能把statusCode你的Json本身放进去吗?

return Json(new 
{
   statusCode =(int) HttpStatusCode.NoContent
}, JsonRequestBehavior.AllowGet);
于 2013-09-04T08:22:35.150 回答