gpt4 book ai didi

ios - 单元测试错误抛出在 block 中

转载 作者:行者123 更新时间:2023-11-30 12:18:34 25 4
gpt4 key购买 nike

在以下情况下我遇到一些警告问题:

let expect = expectation(description: "Async network call")
SomeManager.executeCall { result in
do {
/// 1.
XCTAssertThrowsError(try CoreManager.method())
expect.fulfill()
} catch {}
}

waitForExpectations(timeout: 15.0, handler: nil)

在 1. 编译器给出一个错误

catch block in unreachable because no errors are thrown in do block

如果我删除 do-catch 则会出现错误,即:

Invalid conversion from throwing function type to non-throwing function type...

最佳答案

XCTAssertThrowsError 的调用会吞掉错误,因此您不需要 do/catch。对我来说看起来像一个错误。作为解决方法,请尝试像这样包装检查函数

func mustThrow() {
XCTAssertThrowsError(try CoreManager.method())
}

然后调用

SomeManager.executeCall { result in
/// 1.
mustThrow()
expect.fulfill()
}

您可以在测试中本地定义函数,以避免污染文件中的名称。

关于ios - 单元测试错误抛出在 block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45099049/

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