使用 Nimble 测试在 Quick 中引发错误的方法时出错

Posted

技术标签:

【中文标题】使用 Nimble 测试在 Quick 中引发错误的方法时出错【英文标题】:Error testing a method that throws an Error in Quick with Nimble 【发布时间】:2016-12-13 15:47:44 【问题描述】:

在测试引发异常的方法时,我无法正确获取 Nimble 匹配器。根据文档,它应该很简单。我只需要这样的期望

expect( try somethingThatThrows() ).toNot( throwError() ) 

但是,使用 Swift 3 和 Xcode 8.2,我得到了一个编译器编辑器。这是上下文。

describe("Using RealmDatasource") 

   let datastore = RealmDatasource() as Datasource

       it("can retrieve an object") 

           expect( try datastore.getCurrentObject() ).to( throwError() )

       


我在“it”声明行收到以下错误

Invalid conversion from throwing function of type '() -> () throws to non-throwing function of type '() -> ()'

【问题讨论】:

【参考方案1】:

尝试使用带大括号 的 expect

expect try datastore.getCurrentObject() .to( throwError() )

应该可以工作

【讨论】:

以上是关于使用 Nimble 测试在 Quick 中引发错误的方法时出错的主要内容,如果未能解决你的问题,请参考以下文章

quick + nimble 单元测试

xctest 使用 NSPredicate 最终替换 Quick/Nimble

Swift Quick/Nimble 测试未运行

Quick-Nimble 框架中是不是有 XCTFail() 等效项?

Swift Quick/Nimble:期望的模棱两可的使用

如何在 Swift Quick Nimble 中执行 beforeAll