加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读