代码测试中的一些错误引发了这个问题,由于代码的扩展,这里有一个完整的项目,它完全复制了我们遇到的问题(以节省您分析大量行的时间)。
问题是当试图从异步方法捕获异常时,这里的AsyncTest.cs文件:
using System;
using Xunit;
namespace AsyncTest
{
public class AsyncTest
{
[Fact]
public void ProbeTest()
{
// Arrange
var probe = new Probe();
// Act
Action action = async () =>
await probe.GetJob();
// Assert
var ex = Assert.Throws<InvalidOperationException>(action);
Assert.Contains("Trouble with Project.", ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,Probe.cs要测试的类(注意GetById方法调用的GetJob方法中的延迟和异常抛出):
using System;
using System.Threading.Tasks;
namespace AsyncTest
{
class Probe
{
public async Task<MyResult<Guid>> GetJob()
{
var etlJob = await GetById("id");
return new MyResult<Guid>(etlJob); …Run Code Online (Sandbox Code Playgroud)