【发布时间】:2020-06-08 02:46:04
【问题描述】:
如何对下面的 catch 块进行单元测试?
下面是我的控制器定义:
public class RunController : Controller
{
Public ActionResult GetExtraRun()
{
try{
return View("ExtraRun");
} catch(Exception ex)
{
_log.Error("Index -" + ex.Message, ex);
TempData[ErrorInfo] = GetErrorInfo(ex, "RunStatus");
return RedirectToAction("Index", "RunErrorHandling");
}
}
}
我正在使用最新的带有 Asp.NET Core MVC 3.0 版本的 NUnit 和 Moq。
所以我将有如下两个测试用例
- ) 检查是否返回查看成功。
- ) 我需要检查 catch 块作为代码覆盖的一部分。
所以我在上面给出的代码的第二点需要帮助。
【问题讨论】:
-
根据你运行的单元测试,你会期待不同的结果,这取决于它是否是一个catch。然后你可以测试,例如调用工作的方法和调用引发异常的方法。如果返回的数据,例如包含在 catch 上返回的操作结果,并且您希望去那里,那么它会没问题。但无论如何,为了更好地测试,你应该看看依赖注入和模拟:stackoverflow.com/questions/2665812/what-is-mocking
-
作为代码覆盖率部分,我需要这样做。从这个意义上说,你能帮忙吗?
标签: c# unit-testing asp.net-core-mvc nunit