如何使用NUnit检查200 OK

时间:2019-02-14 10:33:20

标签: c# unit-testing asp.net-web-api nunit assert

我创建了一个返回200 ok响应的Web API。

 public IHttpActionResult get()
 {
    return Ok();
 }

此外,我还使用NUnit框架创建了一个测试项目。

var controller = new StatusController();
var result= controller.level0() as OkNegotiatedContentResult<object>;
IHttpActionResult actionResult = controller.level0();
Assert.AreEqual(HttpStatusCode.OK, actionResult);

但是我有这样的错误

Expected: OK
  But was:  <System.Web.Http.Results.OkResult>

当我尝试调试'actionResult'变量时,它包含一个错误

Request = '((System.Web.Http.Results.OkResult)actionResult).Request' threw an exception of type 'System.InvalidOperationException'

如何查看我的http状态代码?

1 个答案:

答案 0 :(得分:3)

根据提供的控制器,您似乎将结果转换为错误的类型。

Ok()返回OkResult的实例

检查返回类型以验证被测操作的行为符合预期。

//Arrange
var controller = new StatusController();

//Act
IHttpActionResult actionResult = controller.get();

//Assert
Assert.IsInstanceOf<OkResult>(actionResult);

引用Unit Testing Controllers in ASP.NET Web API 2