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 状态代码?
根据提供的控制器,您似乎将结果转换为错误的类型。
Ok() 返回一个实例 OkResult
检查返回类型以验证被测操作的行为是否符合预期。
//Arrange
var controller = new StatusController();
//Act
IHttpActionResult actionResult = controller.get();
//Assert
Assert.IsInstanceOf<OkResult>(actionResult);
Run Code Online (Sandbox Code Playgroud)