Yit*_*tuo 2 c# assertion fluent-assertions
我无法找到断言1失败但断言2通过的原因:
var a = Test.test1;
var b = Test.test1;
a.Should().BeSameAs(b); //1
Assert.Equal(a, b); //2
Run Code Online (Sandbox Code Playgroud)
Test 是一个像下面的枚举:
enum Test { test1, test2 }
Run Code Online (Sandbox Code Playgroud)
Should()为了enum解决ObjectAssertions哪些盒子enum进入object.对于ObjectAssertions所述expected的参数BeSameAs的类型的也object.
所以a.Should().BeSameAs(b)框a和b两个不同的objects然后检查那两个对象是指内存中完全相同的对象.
如果你想断言a并且b是相同的enum,你应该使用
a.Should().Be(b);
Run Code Online (Sandbox Code Playgroud)