Есть ли способ утверждать кортежи с помощью 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);
Кроме того, меня также не беспокоит порядок гидов.
Обновить
В настоящее время я использую 4.1.1 для этого. Обновление до 4.19.4 дает тот же результат.
Я также пробовал в предварительной версии v5, используя:
t1.Should().BeEquivalentTo(t2);
Equals
, сравнивая отдельные типы в этом кортеже с помощьюEquals
. Поскольку одним из типов являетсяIEnumerable<T>
, это никогда не сработает. - person Dennis Doomen   schedule 16.01.2018