我正在尝试将“CollectionAssert.AreEquivalent()”的用法替换为FluentAssertion“。
我尝试过使用ShouldAllBeEquivalentTo,但在比较不同类型的类似对象时,该功能不会失败。
在下面的示例中,两个调用都成功。我希望第二个失败。
new int[] { 1, 2 }.ShouldAllBeEquivalentTo( new int[] { 2, 1 } );
new int[] { 1, 2 }.ShouldAllBeEquivalentTo( new string[] {"1", "2"} );
是否存在替代功能或某种选项会导致第二行失败?
答案 0 :(得分:2)
这是因为默认使用了TryConversionEquivalencyStep
,它会将"1"
和1
视为相等(尝试转换后)。
首先尝试删除它:
AssertionOptions.EquivalencySteps.Remove<TryConversionEquivalencyStep>();
请参阅Source