メソッドのコレクション出力を検証するテストがあります。テストのこのバリエーションはパスします:
[TestMethod, TestCategory("BVT")]
public void TheStatusesAreReturned()
{
var expectedUnprocessedStatuses = new List<FileUploadStatus>
{
FileUploadStatus.InProcess,
FileUploadStatus.Pending,
};
Sut.GetUnprocessedStatuses()
.Should()
.BeEquivalentTo(expectedUnprocessedStatuses);
}
このバリエーションのテストは失敗し、"Expected item[0] to be InProcess, but found Pending" というエラーが表示されます。
[TestMethod, TestCategory("BVT")]
public void TheStatusesAreReturned2()
{
var expectedUnprocessedStatuses = new List<FileUploadStatus>
{
FileUploadStatus.InProcess,
FileUploadStatus.Pending,
};
Sut.GetUnprocessedStatuses()
.ShouldBeEquivalentTo(expectedUnprocessedStatuses);
}
明らかに、ShouldBeEquivalentTo
コレクション アイテムの順序を気にしますが、気にBeEquivalentTo
しません。2 つの方法で等価性の概念が異なるのはなぜですか?