【发布时间】:2022-01-18 07:42:29
【问题描述】:
假设我有一个登录方法;
public async Task<IActionResult> Login()
{
try
{
//my codes..
}
catch(Exception exp)
{
_sLogger.Slack(exp)
return BadRequest();
}
}
我已经测试了所有控制器和方法,但我无法测试 catch 块?我不能抛出异常,我该怎么做?
我试过这样,但对我不起作用:
public void_WithInvalidData_ThenBadRequest()
{
authController.UnAuthrorize();
var result=(BadRequestResult)authController.Login();
Assert.True(result.StatusCode == (int)HttpStatusCode.BadRequest);
authController.Authorize();
}
【问题讨论】:
-
通常,您可以通过在 try 块中的 mock 上抛出异常来做到这一点。你没有展示那部分,也没有展示你是否使用了任何模拟框架。
-
为什么不能抛出异常?你能在这里分享完整的方法吗?
标签: c# unit-testing try-catch xunit