我正在尝试使用FluentAssertions ShouldBeEquivilantTo进行“严格”比较。如果“实际值”具有“期望值”不具有的属性但是我需要实现该行为以便如果“期望值”具有“实际值”不具有的属性我似乎也需要它失败。换句话说,我正在寻找两个对象中存在的所有属性,否则我希望我的测试失败。
示例:我希望失败:
var actual = new
{
a = "simple",
b = new
{
c = "complex"
}
};
var expected = new
{
a = "simple",
b = new
{
c = "complex"
},
d = "missing"
};
actual.ShouldBeEquivalentTo(expected);
反正有没有实现这种行为?我曾尝试查看IMemberSelectionRule但似乎ISubjectInfo和IEquivalencyAssertionOptions似乎不包含有关“期望值”的信息
我可能在这里遗漏了一些东西,所以如果这是一个愚蠢的问题我会道歉。
另外,我比较匿名类型的原因是因为这些是来自另一个程序集中的WebApi控制器的响应。我通过使用[assembly:InternalsVisibleTo(“testsuite”)]符号将我的测试套件添加为友好来暴露匿名类型。