【问题标题】:Migrating xunit project with FluentAssertions API 4.x syntax to run using FluentAssertions v5.x version使用 FluentAssertions API 4.x 语法迁移 xunit 项目以使用 FluentAssertions v5.x 版本运行
【发布时间】:2019-06-04 12:56:39
【问题描述】:

我知道Redefining equivalency 中从 FluentAssertions v4.x 到 v5.x 有一个重大变化 所以,我应该修改:

        ShouldBeEquivalenTo ()

         Should().BeEquivalentTo()

还有很多变化。

我有 xunit 测试项目目标 net45 并开始迁移到多目标 netcoreapp2.1 和 net45。(FluentAssertions v4.x 不支持 netcoreapp2.x)

该项目有许多使用 4.x 旧语法的测试用例,我想尽量减少测试项目中的更改并避免(如果可以的话)修改为新语法。

我的选择是:

首先:我应该手动修改测试用例以支持 v5.x 的新语法

第二:您可能会建议作为替代方案。

你能告诉我最好的路径吗?

【问题讨论】:

    标签: c# xunit fluent-assertions


    【解决方案1】:

    我确实使用了 Visual Studio 提供的 RegEx 搜索和替换来实现这一点。

    【讨论】:

    • 感谢@dennis Doomen 的回答。方法的签名有什么变化吗?
    • 我也得出结论,搜索替换是最简单最有效的选择。
    • @VidmantasBlazevicius,我想确保方法的签名没有变化。你确定方法的参数没有变化吗?
    • 正如您自己提到的,FA 引入了很多重大更改,主要是确保每个 API 都以 Should() 开头,但我已经使用搜索替换转换了大约 20K 测试。因为我是作者……
    【解决方案2】:

    本回答基于@Dennis Doomen的回答

    我在 VS2017 中使用了查找/替换正则表达式:

       Find:  Should(\w+)
       Replace: Should().$1
    

    这个正则表达式替换表达式:

    ShouldBeEquivalentTo, ShouldAllBeEquivalentTo, ShouldThrow and ShouldNotThrow

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2022-01-21
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      相关资源
      最近更新 更多