Rém*_*ren 3 c# unit-testing fluent-assertions
有什么区别:
subject.Should().Be(expected)subject.Should().Equals(expected)我总是使用Be(),但我现在有一个测试用例,其中Be()给出了不同的结果,然后Equals()。我的测试用例涉及一个结构并将其与该结构的默认值进行比较。
MyStruct subject = new MyStruct("value");
Assert.Equal(default, subject); // xUnit Assert => works
Assert.Equal(default(MyStruct), (object)subject); // xUnit Assert => works
subject.Should().Equals(default); // works
subject.Should().Be(default(MyStruct)); // FAILS!
Run Code Online (Sandbox Code Playgroud)
和Be()是Equal()相同的,这是 Fluent Assertions 中的错误吗?或者他们主张不同的事情?
小智 5
方法Equals来自System.Object.
实际上,您将 Type 的对象ObjectAssertions与 object( ) 的默认值进行比较null。
这不是一个断言。
该方法返回一个 false 的布尔值。