web-dev-qa-db-ja.com

xUnit Assert.All()非同期

xUnit を使用したこのサンプルテストがあります:

    [Fact]
    public void SomeTest()
    {
        Assert.All(itemList, async item=>
                {
                    var i = await Something(item);
                    Assert.Equal(item,i);
                });
    }

テスト全体を非同期/待機可能にするための良い解決策はありますか?

8
J2ghz

組み込みの非同期Allはありません。 Task.WhenAllを使用できます:

[Fact]
public async Task SomeTest()
{
    var itemList = ...;
    var results = await Task.WhenAll(itemList.Select(async item =>
    {
        var i = await Something(item);
        return i;
    }));
    Assert.All(results, result => Assert.Equal(1, result));
}
11
Eli Arbel