FluentAssertions中的CollectionAssert.AreEquivalent?

时间:2017-02-05 16:39:01

标签: c# fluent-assertions

我正在尝试将“CollectionAssert.AreEquivalent()”的用法替换为FluentAssertion“。

我尝试过使用ShouldAllBeEquivalentTo,但在比较不同类型的类似对象时,该功能不会失败。

在下面的示例中,两个调用都成功。我希望第二个失败。

new int[] { 1, 2 }.ShouldAllBeEquivalentTo( new int[] { 2, 1 } );       
new int[] { 1, 2 }.ShouldAllBeEquivalentTo( new string[] {"1", "2"} );  

是否存在替代功能或某种选项会导致第二行失败?

1 个答案:

答案 0 :(得分:2)

这是因为默认使用了TryConversionEquivalencyStep,它会将"1"1视为相等(尝试转换后)。

首先尝试删除它:

AssertionOptions.EquivalencySteps.Remove<TryConversionEquivalencyStep>();

请参阅Source