小编Rém*_*ren的帖子

流畅的断言:Be() 与 Equals()

有什么区别:

  • 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 中的错误吗?或者他们主张不同的事情?

c# unit-testing fluent-assertions

3
推荐指数
1
解决办法
6611
查看次数

标签 统计

c# ×1

fluent-assertions ×1

unit-testing ×1