Ell*_*ock 8 error-handling try-catch swift swift5
谷歌搜索让我找到了一般的 Swift 错误处理链接,但我有一个更具体的问题。我认为这里的答案是“不,你运气不好”,但我想仔细检查一下我是否遗漏了一些东西。几年前的这个问题看起来很相似,并且有一些看起来很粗糙的解决方法的答案......我想看看最新版本的 Swift 是否使更优雅的东西成为可能。
情况:我有一个未用 标记的函数throws,并且使用try!。
目标:我想创建一个单元测试来验证,是的,给这个函数错误的东西实际上会失败并抛出(运行时/致命)错误。
问题:
XCTAssertThrows也没有捕获错误。该函数的构建目的是与另一个无声失败的函数具有相同的签名,我在模拟器上将其替换为该函数,以便在测试(自动或手动)期间可以大声失败。所以我不能只是将其更改为抛出函数,因为那样的话另一个函数必须被标记为抛出,并且我希望它默默地失败。
那么,有没有办法抛出一个可以在单元测试中捕获的未处理错误?
或者,我可以在不更改签名的情况下以可测试的方式让这个函数爆炸吗?