相关疑难解决方法(0)

为什么在不使用async/await关键字时异步单元测试失败?

根据这个讨论,以下两种方法应该没有区别:

public async Task Foo()
{
    await DoSomethingAsync();
}

public Task Foo()
{
    return DoSomethingAsync();
}
Run Code Online (Sandbox Code Playgroud)

实际上,似乎对于非常简单的方法,没有 async/await关键字的调用将是首选,因为它们会消除一些开销.

然而,这显然并不总是在单元测试中起作用.

MSTest的

[TestClass]
public class AsyncTest
{
    [TestMethod]
    public async Task Test1()
    {
        await Task.Delay(0);
    }

    [TestMethod]
    public Task Test2()
    {
        return Task.Delay(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

NUnit的

[TestFixture]
public class AsyncTest
{
    [Test]
    public async Task Test1()
    {
        await Task.Delay(0);
    }

    [Test]
    public Task Test2()
    {
        return Task.Delay(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

的xUnit

public class AsyncTest
{
    [Fact]
    public async Task Test1() …
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing mstest async-await

19
推荐指数
1
解决办法
7960
查看次数

标签 统计

async-await ×1

c# ×1

mstest ×1

nunit ×1

unit-testing ×1