有什么区别:
subject.Should().Be(预期)
subject.Should().Equals(预期)
我总是使用 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!
Be() 和 Equal() 是否相同,这是 Fluent Assertions 中的错误吗?或者他们主张不同的事情?
最佳答案
Equals
方法来自 System.Object
。
实际上,您将 ObjectAssertions
类型的对象与 object(null
) 的默认值进行比较。
这不是断言。
该方法返回一个 false 的 bool 值。
关于c# - 流畅的断言 : Be() vs Equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61556309/