FluentAssertions比较两个不同类型的列表

时间:2014-09-17 22:12:57

标签: c# fluent-assertions

我想知道是否有办法比较两个不同类型的列表。我找到了这个方法:

        public AndConstraint<TAssertions> Equal(IEnumerable<T> expectation, Func<T, T, bool> predicate, string because = "", params object[] reasonArgs)
        {
          this.AssertSubjectEquality<T>((IEnumerable) expectation, predicate, because, reasonArgs);
          return new AndConstraint<TAssertions>((TAssertions) this);
        }

我正在寻找类似的东西:

    public AndConstraint<TAssertions> Equal<U>(IEnumerable<T> expectation, Func<T, U, bool> predicate, string because = "", params object[] reasonArgs)
    {
      this.AssertSubjectEquality<T,U>((IEnumerable) expectation, predicate, because, reasonArgs);
      return new AndConstraint<TAssertions>((TAssertions) this);
    }

我尝试制作扩展方法,但方法 AssertSubjectEquality 受到保护,不支持第二种类型。

1 个答案:

答案 0 :(得分:1)

如果不复制AssertSubjectEquality类的AssertCollectionsHaveSameCountCollectionAssertions方法,则无法执行此操作。

相反,我建议您分叉存储库并向我发送一个Pull Request,您可以在其中将这两种方法的通用参数从<T>更改为<T, U>,并将您的方法添加到{{1 }}。我会把它变成v3.3的一部分。