web-dev-qa-db-ja.com

FluentAssertions:ShouldBeEquivalentTo vs Should()。Be()vs Should()。BeEquivalentTo()?

誰かがそれらの違いと使用範囲を要約できますか?

SO記事、

  • ShouldBeEquivalientTo() :ShouldBeEquivalentTo()は、.NETフレームワークのプリミティブ型の部分ではなく、複雑なオブジェクトグラフの比較に使用することを目的としています。
  • Should()。BeEquivalentTo() :同等性を検証するための個々のアイテムEquals()実装。バージョン1以降です。FA2.0で導入された新しいShouldBeEquivalenTo()は、詳細な構造比較と相違点も報告します。
  • Should()。Be():見つけることができません。

私の謙虚な理解では、ShouldBeEquivalientTo()Should().BeEquivalentTo()は、Should().BeEquivalentTo()が詳細な比較を行う場合に同様に機能します。

27
Youngjae

これは混乱を招くことに同意します。 Should().BeEquivalentTo()は実際にはShould().EqualInAnyOrder()またはそのようなものと呼ばれるべきです。既に述べたように、関係するオブジェクトのEquals実装を使用して、expectedコレクションのすべてのオブジェクトが順序に関係なくactualコレクションに表示されるかどうかを確認します。次のメジャーバージョンで修正する必要があります。

31
Dennis Doomen