gpt4 book ai didi

c# - 流畅的断言 : Be() vs Equals()

转载 作者:行者123 更新时间:2023-12-03 08:45:45 26 4
gpt4 key购买 nike

有什么区别:

  • 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 值。

enter image description here

关于c# - 流畅的断言 : Be() vs Equals(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61556309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com