Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing FluentAssertions shouldEquivalentTo()与Should()。BeeEquivalentTo()_Unit Testing_Fluent Assertions - Fatal编程技术网

Unit testing FluentAssertions shouldEquivalentTo()与Should()。BeeEquivalentTo()

Unit testing FluentAssertions shouldEquivalentTo()与Should()。BeeEquivalentTo(),unit-testing,fluent-assertions,Unit Testing,Fluent Assertions,我有一个测试来验证方法的集合输出。试验通过的这种变化: [TestMethod, TestCategory("BVT")] public void TheStatusesAreReturned() { var expectedUnprocessedStatuses = new List<FileUploadStatus> { FileUploadStatus.InProcess,

我有一个测试来验证方法的集合输出。试验通过的这种变化:

    [TestMethod, TestCategory("BVT")]
    public void TheStatusesAreReturned()
    {
        var expectedUnprocessedStatuses = new List<FileUploadStatus>
            {
                FileUploadStatus.InProcess,
                FileUploadStatus.Pending,
            };

        Sut.GetUnprocessedStatuses()
            .Should()
            .BeEquivalentTo(expectedUnprocessedStatuses);
    }
[TestMethod,TestCategory(“BVT”)]
公共无效状态已返回()
{
var expectedUnprocessedStates=新列表
{
FileUploadStatus.InProcess,
文件上载状态。挂起,
};
Sut.GetUnprocessedStatuses()
.Should()
.Beequivalento(预期工艺状态);
}
此测试变体失败,错误为“预期项[0]正在处理中,但发现挂起”:

[TestMethod,TestCategory(“BVT”)]
公共无效状态报告2()
{
var expectedUnprocessedStates=新列表
{
FileUploadStatus.InProcess,
文件上载状态。挂起,
};
Sut.GetUnprocessedStatuses()
.应等同于(预期的过程状态);
}

显然,
应该同等对待
关心收款项目的顺序,而
应该同等对待
不关心。为什么这两种方法的等价性概念不同?

你是对的。Should().BeEquivalentTo()使用单个items Equals()实现来验证等效性,并且从版本1开始就存在。FA 2.0中引入的较新的shouldbeeequivalentto()正在进行深入的结构比较,并报告任何差异。对于2.1,我将更改行为,使其更像默认情况下的集合等价性

好的,我期待更新。我经常使用Should().beequivalento()!这是一篇旧文章,但是
应该是等效的,因为从v2.1开始,
将忽略集合中项目的顺序。
    [TestMethod, TestCategory("BVT")]
    public void TheStatusesAreReturned2()
    {
        var expectedUnprocessedStatuses = new List<FileUploadStatus>
            {
                FileUploadStatus.InProcess,
                FileUploadStatus.Pending,
            };

        Sut.GetUnprocessedStatuses()
            .ShouldBeEquivalentTo(expectedUnprocessedStatuses);
    }