【发布时间】:2013-04-15 11:54:03
【问题描述】:
我有一个验证方法的集合输出的测试。这个变体测试通过了:
[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 不关心。为什么这两种方法的等效概念不同?
【问题讨论】:
标签: unit-testing fluent-assertions