小编Tru*_*ems的帖子

无法使用 Xunit 在异步方法中断言异常

代码测试中的一些错误引发了这个问题,由于代码的扩展,这里有一个完整的项目,它完全复制了我们遇到的问题(以节省您分析大量行的时间)。

问题是当试图从异步方法捕获异常时,这里的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)

c# xunit xunit.net .net-core

4
推荐指数
1
解决办法
1158
查看次数

标签 统计

.net-core ×1

c# ×1

xunit ×1

xunit.net ×1