我使用Ploeh.SemanticComparison
'sLikeness
作为一种有效表达映射过程预期输出的方式(如Mark Seemann 在 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);
}
但是,我不高兴:-
- 我想为 Resemblance 应用一个名称(即命名我的
.Without( y => y.ProgrammaticIdentifier)
自定义) - 我已经失去了对称性
Assert.Equal( expected,actual, comparer)
(但我肯定需要来自 的错误消息ShouldEqual
)
有没有更简洁的方式在表达的约束范围内表达这一点?