有没有办法使用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);
答案 0 :(得分:2)
如果使用4.x,请使用t1.ShouldBeEquivalentTo(t2)
。如果您使用5.x,请使用t1.Should().BeEquivalentTo(t2)
。