为什么流畅的断言失败,但是Assert通过了枚举?

时间:2019-01-08 19:07:59

标签: c# assertion fluent-assertions

我很难找到为什么断言1失败但断言2通过的原因:

var a = Test.test1;
var b = Test.test1;
a.Should().BeSameAs(b); //1
Assert.Equal(a, b);     //2

Test是一个如下的枚举:

enum Test { test1, test2 }

1 个答案:

答案 0 :(得分:5)

{p}的

Should()解析为enum,将ObjectAssertions装到enum中。 对于objectObjectAssertions的{​​{1}}参数也是expected类型。

因此,BeSameAsobjecta.Should().BeSameAs(b)分别放入两个不同的a中,然后检查这两个对象是否引用了 exact 相同的对象在内存中。

如果您要断言bobject是相同的a,则应使用

b