我怎么能使FluentAssertions ShouldBeEquivalentTo失败,如果预期有成员,实际没有



我正试图使用FluentAssertions ShouldBeEquivilantTo进行"严格"比较。如果"实际值"具有"期望值"不具有的属性,那么一切似乎都很好,但我需要实现行为,以便如果"期望值"具有"实际值"不具有的属性,我也需要它失败。换句话说,我正在寻找所有属性都存在于两个对象中,否则我预计我的测试将失败。

示例:I want this to fail:

        var actual = new
        {
            a = "simple",
            b = new
            {
                c = "complex"
            }
        };
        var expected = new
        {
            a = "simple",
            b = new
            {
                c = "complex"
            },
            d = "missing"
        };
        actual.ShouldBeEquivalentTo(expected);

有办法实现这个行为吗?我试过查看IMemberSelectionRule,但似乎issubjectinfo和IEquivalencyAssertionOptions都不包含有关"期望值"的信息

我可能在这里遗漏了一些东西,所以如果这是一个愚蠢的问题,我很抱歉。

作为一个额外的一边,我比较匿名类型的原因是因为这些是来自另一个程序集中的WebApi控制器的响应。我通过使用[assembly: InternalsVisibleTo("testsuite")]表示法将我的测试套件添加为友好类型,从而暴露了匿名类型。

您不能,因为它只会评估actual具有的属性。这是我想在v5中改变的。

相关内容

  • 没有找到相关文章

最新更新