我从我的控制器方法返回一个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));
});
}发布于 2013-09-04 16:15:39
JsonResult不包含有关状态代码的信息。此信息在您在控制器操作中使用的Response对象上可用。因此,在您的单元测试中,您可以简单地从那里读取它。我猜您一定是模拟了它,以便能够调用此控制器操作,因此您已经有了对它的引用。
发布于 2013-09-04 16:22:35
你不能把statusCode放进你的Json本身吗?
return Json(new
{
statusCode =(int) HttpStatusCode.NoContent
}, JsonRequestBehavior.AllowGet);https://stackoverflow.com/questions/18595823
复制相似问题