c# – FluentAssertions分解重复配置
发布时间:2020-12-16 01:26:45 所属栏目:百科 来源:网络整理
导读:我有像这样的单元测试代码: // version3 should be a copy of version2 with some differencesversion3.Data.ShouldBeEquivalentTo(version2,option = option .Excluding(x = x.Id) .Excluding(x = x.Status) .Excluding(x = x.Stale) .Excluding(x = x.Bod
我有像这样的单元测试代码:
// version3 should be a copy of version2 with some differences version3.Data.ShouldBeEquivalentTo(version2,option => option .Excluding(x => x.Id) .Excluding(x => x.Status) .Excluding(x => x.Stale) .Excluding(x => x.Body) .Excluding(x => x.CreatedBy) .Excluding(x => x.UpdatedBy),"because version3 is version2 updated"); 然后再说一遍 // version4 should be a copy of version3 with some differences version4.Data.ShouldBeEquivalentTo(version3,"because version4 is version3 updated"); 我怎样才能选择出选项? 我想做这样的事情: // version3 should be a copy of version2 with some differences version3.Data.ShouldBeEquivalentTo(version2,option => baSEOption,"because version3 is version2 updated"); 甚至可能是这样的: // version3 should be a copy of version2 with some differences version3.Data.ShouldBeEquivalentTo(version2,option => baSEOption .Excluding(x => x.OtherProperty),"because version3 is version2 updated"); 解决方法
在外部声明选项委托作为基础
Func<FluentAssertions.Equivalency.EquivalencyAssertionOptions<MyDataType>,FluentAssertions.Equivalency.EquivalencyAssertionOptions<MyDataType>> baSEOption = option => option .Excluding(x => x.Id) .Excluding(x => x.Status); 并将其与断言一起使用 // version3 should be a copy of version2 with some differences version3.Data.ShouldBeEquivalentTo(version2,baSEOption,"because version3 is version2 updated"); 对于需要在基础上构建的其他断言,您必须调用委托并附加其他选项 // version3 should be a copy of version2 with some differences version3.Data.ShouldBeEquivalentTo(version2,option => baSEOption(option) .Excluding(x => x.OtherProperty),"because version3 is version2 updated"); 您应该注意,在较新版本的框架中,不推荐使用当前使用的语法. version3.Should().BeEquivalentTo(version2,"because version3 is version2 updated"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |