我正试图使用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中改变的。