【问题标题】:Ambiguous Call when using Should().NotBeNull() on As item在 As 项目上使用 Should().NotBeNull() 时的不明确调用
【发布时间】:2021-10-24 21:31:24
【问题描述】:

当我做以下测试时

var contentRes = res as OkNegotiatedContentResult<List<MachineHealthTableDTO>>;
contentRes.Should().NotBeNull();

我得到了错误

The call is ambiguous between the following methods or properties: 'DataRowAssertionExtensions.Should<TDataRow>(TDataRow)' and 'DataSetAssertionExtensions.Should<TDataSet>(TDataSet)'

当我从 fluent assertions 5 升级到 6 时,这开始发生。 任何关于我如何解决这个问题的想法都将不胜感激。

【问题讨论】:

  • 我无法使用来自Microsoft.AspNet.WebApi.CoreOkNegotiatedContentResult 复制此内容。请提供mcve
  • @JonasNyrup 请看下面的答案,我们使用了 2017 年和 2019 年的对比,2019 年的有效,2017 年的失败

标签: fluent-assertions


【解决方案1】:

我刚刚在 .NET Framework 4.8 控制台应用程序中遇到了这个确切的问题。可以在本地构建良好,但在 Azure DevOps 管道中的构建步骤失败。

原来管道正在使用vs2017-win2016 vm。将其提高到 windows-2019 - 使用 Visual Studio 2019/更高版本的 MSBuild - 解决了问题。

【讨论】:

  • 认为这可能是因为我们有一个旧的(VS 2015,Server 2012)构建服务器,而我正在使用 VS 2019 只是需要一些想法/确认它可能是。我的高层已经提出了构建服务器问题,但是看起来要使用 Fluent 6.x,您必须使用 VS 2019 构建,这并不适合所有人。最后我只是恢复到 5.x 包。
  • 嗯,Visual Studio 2019 和 SDK(这才是真正重要的)已于 2019 年 4 月发布。Microsoft 不再支持 Visual Studio 2015。但实际上,您只需要 SDK。 3 年来,我什至不再使用 Visual Studio,只依赖 SDK 开发 FluentAssertions。
【解决方案2】:

问题已经得到解答,但我收到了同样的错误消息,不明白为什么 FluentAssertions 从 4 版本到 6 版本进行了如此多的更改。结果,我安装了多个版本的 Nuget 包。因此,如果您安装了 Fluent Assertions nuget 包的多个版本,请通过“管理 nuget 包”查看解决方案。请参阅 Visual Studio 中的合并选项卡。

【讨论】:

    【解决方案3】:

    enum 有一个非常相似的问题

    actualEnumValue.Should().Be(expectedEnumValue);
    

    有错误

    错误 CS0121 调用在以下方法或属性之间不明确:“DataRowAssertionExtensions.Should(TDataRow)”和“DataSetAssertionExtensions.Should(TDataSet)”

    我终于设法通过从项目文件中删除 &lt;LangVersion&gt;7&lt;/LangVersion&gt; 来解决问题。

    【讨论】:

      【解决方案4】:

      作为失败构建的快速修复,我将扩展方法更改为

      AssertionExtensions.Should(contentRes).NotBeNull();
      

      【讨论】:

        猜你喜欢
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 2016-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2013-08-28
        相关资源
        最近更新 更多