【发布时间】:2019-11-22 10:42:16
【问题描述】:
我正在尝试在 asp.net core 2 中测试一种 web api 方法。
网页接口
方法:
public IActionResult Delete(int id)
{
try
{
var success = sportsService.DeleteSport(id);
if (!success)
{
return new NotFoundResult();
}
return new OkResult();
}
catch (Exception e)
{
return new StatusCodeResult(400);
}
}
单元测试部分:
private Mock<ISportsService> mockService;
[SetUp]
public void Setup()
{
mockService.SetupSequence(x => x.DeleteSport(It.IsAny<int>())).
Returns(true). // OkResult();
Returns(false). // NotFoundResult()
Throws(new Exception()); //Exception
}
测试方法如下所示。我对这种方法不清楚的是,测试该方法的正确方法是什么?
[Test]
public void TestStrategyControllerWithDelete()
{
var result = controller.Delete(STRAT_ID);
var okResult = result as ObjectResult;
Assert.AreEqual(HttpStatusCode.NotFound, okResult.StatusCode);
Assert.AreEqual(HttpStatusCode.OK, okResult.StatusCode);
Assert.AreEqual(400, okResult.StatusCode);
}
并且我确定为 null ! 无法获取 okResult.StatusCode
【问题讨论】:
标签: c# unit-testing moq