【发布时间】:2016-07-14 15:58:44
【问题描述】:
这可能是一个相当简单的问题,但我承认,我被卡住了。
我有一个返回 IHttpActionResult 的控制器,我需要为此编写单元测试。
这是控制器:
public IHttpActionResult GetPerson(int id) {
Person person = repository.Get(id);
if (person == null) {
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return Ok(new {
User = person
});
}
这是单元测试:
[TestMethod]
public void GetReturnsValidPerson() {
var userController = new UserController();
IHttpActionResult actionResult = userController.GetPerson(1);
Assert.IsInstanceOfType(actionResult, typeof(OkResult));
}
这是测试的错误:
Assert.IsInstanceOfType 失败。预期的 类型:System.Web.Http.Results.OkResult 实际类型: System.Web.Http.Results.OkNegotiatedContentResult1[f__AnonymousType11[DataAccess.BO.Person]]
这里到底发生了什么?控制器的返回是一个 HTTP 200 Ok 响应。为什么这期待OkNegotiatedContentResult?
【问题讨论】:
标签: c# unit-testing