我无法找到断言 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 }
最佳答案
enum
的
Should()
解析为 ObjectAssertions
,它将 enum
装入一个 对象
。
对于 ObjectAssertions
,BeSameAs
的 expected
参数也是 object
类型。
所以 a.Should().BeSameAs(b)
将 a
和 b
放入两个不同的 object
s,然后检查这两个对象是否引用内存中完全相同的对象。
如果你想断言a
和b
是相同的enum
,你应该使用
a.Should().Be(b);
关于c# - 为什么 fluent assertion 失败但 Assert 通过枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54098160/