我想知道的是如何在 C# 单元测试中断言异步方法引发异常?我能够Microsoft.VisualStudio.TestTools.UnitTesting
在 Visual Studio 2012 中编写异步单元测试,但还没有弄清楚如何测试异常。我知道 xUnit.net 也支持这种方式的异步测试方法,虽然我还没有尝试过那个框架。
举个例子,下面的代码定义了被测系统:
using System;
using System.Threading.Tasks;
public class AsyncClass
{
public AsyncClass() { }
public Task<int> GetIntAsync()
{
throw new NotImplementedException();
}
}
此代码片段定义了一个TestGetIntAsync
针对AsyncClass.GetIntAsync
. GetIntAsync
这是我需要输入有关如何完成引发异常的断言的地方:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Threading.Tasks;
[TestClass]
public class TestAsyncClass
{
[TestMethod]
public async Task TestGetIntAsync()
{
var obj = new AsyncClass();
// How do I assert that an exception is thrown?
var rslt = await obj.GetIntAsync();
}
}
如有必要,请随意使用除 Visual Studio 之外的其他一些相关单元测试框架,例如 xUnit.net,否则您会认为这是一个更好的选择。