В чем разница между:
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!
Являются ли Be()
и Equal()
одинаковыми, и является ли это ошибкой в Fluent Assertions? Или они утверждают разные вещи?