流利的断言 - 元组

时间:2018-01-16 10:18:57

标签: c# unit-testing tuples fluent-assertions

有没有办法使用Fluent Assertions声明元组?

var t1 = new Tuple<Guid, IEnumerable<Guid>>(Guid.Parse("{DA18B047-2F62-45F0-A437-748976B41D22}"),
    new [] { Guid.Parse("{DA18B047-2F62-45F0-A437-748976B41D22}") });

var t2 = new Tuple<Guid, IEnumerable<Guid>>(Guid.Parse("{DA18B047-2F62-45F0-A437-748976B41D22}"),
    new[] { Guid.Parse("{DA18B047-2F62-45F0-A437-748976B41D22}") });

使用以下任一方法断言:

t1.Should().ShouldBeEquivalentTo(t2);
t1.ShouldBeEquivalentTo(t2);

结果:

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException : Expected item[0] to be (da18b047-2f62-45f0-a437-748976b41d22, System.Collections.Generic.List`1[System.Guid]), but found (da18b047-2f62-45f0-a437-748976b41d22, System.Collections.Generic.List`1[System.Guid]).

Expected item[1] to be (119d681c-9171-4ecd-86b6-3b4417ad167c, System.Collections.Generic.List`1[System.Guid]), but found (119d681c-9171-4ecd-86b6-3b4417ad167c, System.Collections.Generic.List`1[System.Guid]).

我也尝试过:

t1.Should().Be(t2);

另外,我也不会对Guids的命令感到困扰。

更新

我目前正在使用4.1.1。升级到4.19.4会产生相同的结果。

我还尝试在v5预发布中使用:

t1.Should().BeEquivalentTo(t2);

1 个答案:

答案 0 :(得分:2)

如果使用4.x,请使用t1.ShouldBeEquivalentTo(t2)。如果您使用5.x,请使用t1.Should().BeEquivalentTo(t2)