如何使用 NUnit 检查 200 ok

Abd*_*naf -1 c# nunit unit-testing assert asp.net-web-api

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

 public IHttpActionResult get()
 {
    return Ok();
 }
Run Code Online (Sandbox Code Playgroud)

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

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

但我有这样的错误

Expected: OK
  But was:  <System.Web.Http.Results.OkResult>
Run Code Online (Sandbox Code Playgroud)

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

Request = '((System.Web.Http.Results.OkResult)actionResult).Request' threw an exception of type 'System.InvalidOperationException'
Run Code Online (Sandbox Code Playgroud)

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

Nko*_*osi 5

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

Ok() 返回一个实例 OkResult

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

//Arrange
var controller = new StatusController();

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

//Assert
Assert.IsInstanceOf<OkResult>(actionResult);
Run Code Online (Sandbox Code Playgroud)

ASP.NET Web API 2 中的参考单元测试控制器