Quickでテストする
Swiftのテストフレームワークとして有名なQuickを使ってみます。
インストール
Carthageに
github "Quick/Nimble" github "Quick/Quick"
を記述し
carthage update
でインストールできます。CocoaPods,Git submodulesでもインストール可能です。
Nimble
はMatcherでQuickで使われています。
テストを書いてみる
簡単な例ですが、こちらのようにRSpec風に書くことができます。
describe("sample"){ it("1 + 1 = 2"){ expect(1+1).to(equal(2)) } }
非同期処理をテストする場合は以下のように書きます。
describe("API TEST") { it("search swift"){ var isSuccess = false APIClient.search("swift"){result in switch result { case .Success: isSuccess = true case .Error: break } } expect(isSuccess).toEventually(beTrue(), timeout: 5, pollInterval: 1, description: "") } }
toEventually
を使用することでタイムアウト時間、pollingの間隔を指定できます。
またwaitUntil
を使用する方法もあります。wailUntil
はデフォルトのタイムアウト時間が1秒になっています。
it("search swift2"){ var isSuccess = false waitUntil{ done in APIClient.search("swift"){result in switch result { case .Success: isSuccess = true case .Error: break } expect(isSuccess).to(beTrue()) done() } } }