我从我的控制器方法返回JsonResult
,即
public JsonResult deleteStuff()
{
//Do some stuff
Response.StatusCode = (int) HttpStatusCode.NoContent;
return Json(new {}, JsonRequestBehavior.AllowGet);
}
我想编写一个测试,确认JSON数据是一个空对象,HttpStatus是204,但我无法通过TestStack或直接从返回的对象获得结果。
e.g:
var myResult =_administratorController.DeleteTheme(dummyId);
或
_administratorController
.WithCallTo(x => x.DeleteTheme(dummyId))
.ShouldReturnJson(x =>
{
Assert.That(HttpResultExtensions.ToResponseStatus(x), Is.EqualTo((int) HttpStatusCode.NoContent));
});
}
答案 0 :(得分:0)
JsonResult不包含有关状态代码的信息。您在控制器操作中使用的Response
对象上提供了此信息。所以在你的单元测试中,你可以从那里读取它。我想你必须先嘲笑它才能调用这个控制器动作,所以你已经引用了它。
答案 1 :(得分:0)
你不能把statusCode
放在你的Json本身吗?
return Json(new
{
statusCode =(int) HttpStatusCode.NoContent
}, JsonRequestBehavior.AllowGet);