gpt4 book ai didi

F#-如何将 Assert.Multiple 与 F# 一起使用

转载 作者:行者123 更新时间:2023-12-02 02:48:54 24 4
gpt4 key购买 nike

我正在运行一些 NUnit 测试,并希望我的每个测试用例在退出之前运行所有断言直到 block 末尾,即使很少有断言失败。我看到 Assert.Multiple ( https://github.com/nunit/docs/wiki/Multiple-Asserts ) 可以达到此目的,但我收到错误:

没有与方法“Multiple”匹配的重载。可用的重载如下所示。 可能的重载:'Assert.Multiple(testDelegate: TestDelegate) : unit'。类型约束不匹配。类型 'unit' 与类型 'TestDelegate' 不兼容。 可能的重载:'Assert.Multiple(testDelegate: AsyncTestDelegate) : unit'。类型约束不匹配。类型 'unit' 与类型 'AsyncTestDelegate' 不兼容。已完成在项目“NUnitTestProject1.fsproj”中构建目标“CoreCompile”——失败。

如果我的测试如下:

 [<Test>]
let getResponseCode () =
let response = Request.createUrl Post "https://reqres.in/api/users"
|> Request.setHeader (ContentType (ContentType.create("application", "json")))
|> Request.bodyString """{
"name": "morpheus",
"job": "leader"}"""

|> HttpFs.Client.getResponse
|> run

Assert.Multiple(() =>

Assert.AreEqual(200,response.statusCode)
Assert.AreEqual(215,response.contentLength)
)

我应该如何编写它,以免在使用 Assert.Multiple 时出现错误?提前致谢。

Check the screenshot of an error here:

最佳答案

您需要在这里使用 lambda。您使用的语法是 lambda 的 C# 语法,在 F# 中语法是 fun () -> ...,所以在您的情况下,它看起来像

Assert.Multiple(fun () ->
Assert.AreEqual(200, response.StatusCode)
Assert.AreEqual(215, response.ContentLength)
)

关于F#-如何将 Assert.Multiple 与 F# 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62388582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com