我有一个方法Task<Details> GetDetails(int number);
。如何测试异步异常处理程序
它从一个异步MVC控制器称为:
var details = _provider.GetDetails(input);
Details details = null;
try
{
details = await getDetails;
}
catch (Exception ex)
{
// SOME CODE THAT NEEDS TESTING
}
尝试在自定义,非异步测试框架测试。 GetDetails方法残留,使用RhinoMocks: Provider.Stub(provider => provider.GetDetails(input) .Return(new Task<Details>(delegate { throw new Exception {}; }));
结果是单元测试的死锁,它永远运行。 有关如何解决此问题的任何建议?
您需要使用一个框架,该框架的核心是用于处理异步操作,了解任务以及如何使用它们等。如果您的测试框架不是为了了解任务而构建的,那么您将无法测试正确的异步代码。 – Servy 2014-09-10 17:44:30