为什么 fluent assertion 失败但 Assert 通过枚举?
Why did fluent assertion fail but Assert passed for an enum?
我无法找到断言 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 }
Should()
对于 enum
解析为 ObjectAssertions
,将 enum
框入 object
。
对于 ObjectAssertions
BeSameAs
的 expected
参数也是 object
.
类型
所以 a.Should().BeSameAs(b)
将 a
和 b
放入两个不同的 object
中,然后检查这两个对象是否引用 exact 内存中的相同对象。
如果你想断言a
和b
是相同的enum
,你应该使用
a.Should().Be(b);
我无法找到断言 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 }
Should()
对于 enum
解析为 ObjectAssertions
,将 enum
框入 object
。
对于 ObjectAssertions
BeSameAs
的 expected
参数也是 object
.
所以 a.Should().BeSameAs(b)
将 a
和 b
放入两个不同的 object
中,然后检查这两个对象是否引用 exact 内存中的相同对象。
如果你想断言a
和b
是相同的enum
,你应该使用
a.Should().Be(b);