首页 > 解决方案 > FluentAssertions 等价于 xUnit Assert.Collection

问题描述

与以下 xUnit/FluentAssertions 组合最接近的 FluentAssertions 是什么?

Assert.Collection(things,
    thing =>
    {
        thing.Id.Should().Be(guid1);
        thing.Name.Should().Be("Thing1");
        thing.Attributes.Should().NotBeNull();
        thing.FullName.Should().MatchRegex("^Thing1 [^ ]+$");
    },
    thing =>
    {
        thing.Id.Should().Be(guid2);
        thing.Name.Should().Be("Thing2");
        thing.Attributes.Should().NotBeNull();
        thing.FullName.Should().MatchRegex("^Thing2 [^ ]+$");
    });

在某些情况下,我发现这种风格比断言集合相等或等价的 FluentAssertions 方法更具表现力和/或简洁。

Assert.Collection 签名:

/// <summary>
/// Verifies that a collection contains exactly a given number of elements, which meet
/// the criteria provided by the element inspectors.
/// </summary>
/// <typeparam name="T">The type of the object to be verified</typeparam>
/// <param name="collection">The collection to be inspected</param>
/// <param name="elementInspectors">The element inspectors, which inspect each element in turn. The
/// total number of element inspectors must exactly match the number of elements in the collection.</param>
public static void Collection<T>(IEnumerable<T> collection, params Action<T>[] elementInspectors)

相关问题:https ://github.com/fluentassertions/fluentassertions/issues/118

标签: c#xunit.netfluent-assertions

解决方案


推荐阅读