我正在使用 NUnit 3。我编写了一个扩展方法:
public static T ShouldThrow<T>(this TestDelegate del) where T : Exception {
return Assert.Throws(typeof(T), del) as T;
}
这使我能够做到这一点:
TestDelegate del = () => foo.doSomething(null);
del.ShouldThrow<ArgumentNullException>();
现在我希望异步操作也有类似的功能:
AsyncTestDelegate del = async () => await foo.doSomething(null);
del.ShouldThrowAsync<ArgumentNullException>();
所以我写了这个:
public static async Task<T> ShouldThrowAsync<T>(this AsyncTestDelegate del) where T : Exception {
return (await Assert.ThrowsAsync(typeof(T), del)) as T;
}
但是这并不起作用:'Exception' 不包含 'GetAwaiter' 的定义,也没有接受类型为 'Exception' 的第一个参数的扩展方法 'GetAwaiter' 可用(是否缺少 using 指令或程序集引用?)
。
我做错了什么?