我很难找到为什么断言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 }
答案 0 :(得分:5)
Should()
解析为enum
,将ObjectAssertions
装到enum
中。
对于object
,ObjectAssertions
的{{1}}参数也是expected
类型。
因此,BeSameAs
将object
和a.Should().BeSameAs(b)
分别放入两个不同的a
中,然后检查这两个对象是否引用了 exact 相同的对象在内存中。
如果您要断言b
和object
是相同的a
,则应使用
b