Я использую Ploeh.SemanticComparison
's Likeness
как способ эффективного выражения предполагаемых выходов процесса картографирования (как описано в Mark Seemann's excellent Advanced Unit Testing course on PluralSight).Отличие - полировка и упаковка
Я тестирую некоторые данные правильно переведенный, который выглядит следующим образом:
[Theory, AutoData]
static void ShouldYieldIdentifierUpdatedEvent(Vendor sut, string name, string version, Guid id)
{
var result = sut.SyncProduct(name, version, id);
var expected = new { ProductId = id, Name = name, Version = version };
expected.AsSource().OfLikeness<NewMappingsEvent>()
.Without(y => y.ProgrammaticIdentifier)
.ShouldEqual(result);
}
Однако, я не рад: -
- Я хочу, чтобы применить имя Сходство (т.е. имя мое
.Without(y => y.ProgrammaticIdentifier)
настройки) - Я потерял симметрию
Assert.Equal(expected,actual, comparer)
(но я определенно нужно сообщение об ошибке отShouldEqual
)
Есть ли более чистый способ выразить это в рамках выраженных ограничений?
Привет, Рубен, с текущим API, это единственный способ сделать это. В ближайшем будущем можно будет использовать библиотеку автоматического сопоставления (например, AutoMapper), чтобы вы могли использовать выбранную вами библиотеку автоматического сопоставления для создания настроек, профилей, конфигураций и т. Д. –
@NikosBaxevanis Я просматривал эту ветку, и все ясно, что там есть хорошие вещи, но если вы помилуете каламбур, это в значительной степени греческий для меня с точки зрения действительно грохинга: P И мне нравится синтаксис в Ploeh .SemanticComparison' (т. Е. Я еще не столкнулся с делом, я не могу сдержать совпадения с моим «Золотым молотом»: D) –