いきなりですが、UnitTestネタです。テストしないもの、エンジニアにあらずです。
参考:Writing Test Classes and Methods
waitForExpectationsWithTimeoutで非同期処理の待ち状態を指定
標準テストフレームワークのXCTestExpectationとXCTestCase.waitForExpectationsWithTimeoutを組み合わせて実装します。手順は次のようになります。
- XCTestCase.expectationWithDescriptionをコールして、XCTestExpectationを取得
- XCTestCase.waitForExpectationsWithTimeoutで、waitを指定
- 非同期処理終了のタイミングで、XCTestExpectation.fulfill()。もし、waitForExpectationsWithTimeoutで指定した時間内にコールしなければfailとなる
サンプルプログラムです。
func testPerformAsyncRequest(){ // XCTestExpectationの取得 let expectation = self.expectationWithDescription("client key") // 非同期処理のコールバック処理完了後、expectation.fulfill()をコール expectation.fulfill() //waitの時間指定 self.waitForExpectationsWithTimeout(5, handler: nil) }
0 件のコメント:
コメントを投稿