【问题标题】:Parameter count mismatch Exception when mocking HttpClient in F#在 F# 中模拟 HttpClient 时出现参数计数不匹配异常
【发布时间】:2022-01-20 16:14:53
【问题描述】:

我正在尝试在 F# 中使用 Moq 模拟 .NET HttpClient。我目前有以下代码:

open System.Net.Http
open Foq

[<Fact>]
let ``Some test`` () =
    Mock<HttpClient>.With
        (fun client ->
            <@ client.GetStringAsync("foo")
                --> task { return "bar" } @>)
    |> ignore

运行测试时出现以下错误。

System.Reflection.TargetParameterCountException : 参数计数不匹配。

我该如何解决这个问题?

我知道有很多类似的问题,但它们都是针对 C# 的。他们提到要么某处缺少参数,要么应该添加something with a callback。但我无法弄清楚缺少哪些参数,或者如何将回调添加到我的示例中。

【问题讨论】:

    标签: f# moq dotnet-httpclient


    【解决方案1】:

    我对此进行了一些调查,这似乎是由 F# 引用的潜在问题引起的,而不是可以在 Foq 中解决的问题。例如,以下代码会引发相同的未处理异常:

    <@ task { return "bar" } @>
        |> FSharp.Linq.RuntimeHelpers.LeafExpressionConverter.EvaluateQuotation
        |> printfn "%A"
    

    我在 F# 核心存储库中将此报告为 an issue

    【讨论】:

    • 感谢您查看此问题和错误报告!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多