Semelhança - polimento e embalagem

estou a usarPloeh.SemanticComparison'sLikeness como uma forma de expressar efetivamente os resultados pretendidos de um processo de mapeamento (como descrito emExcelente curso de Teste Avançado de Unidade de Mark Seemann no PluralSight).

Estou testando alguns dados mapeados corretamente, que se parece com isso:

[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);
}

No entanto, não estou feliz:

Eu quero aplicar um nome para a semelhança (ou seja, nome meu.Without( y => y.ProgrammaticIdentifier) costumização)Eu perdi a simetria comAssert.Equal( expected,actual, comparer) (mas eu definitivamente preciso da mensagem de erroShouldEqual)

Existe uma maneira mais clara de expressar isso dentro das restrições expressas?

questionAnswers(1)

yourAnswerToTheQuestion