2016-09-25 15 views
4

Swift 3を使用するために開発したCocoapodを更新しています。アップグレードする前に、すべての非同期ユニットテストが正常に動作していました。しかし、今アップグレードした後は、ただちに1人ひとりがすぐに失敗し、なぜか分かりません。それぞれが以下のような構造になっています:xCode 8/Swift 3のiOS非同期ユニットテスト(waitForExpectations failing)

override func setUp() { 
     super.setUp() 
     validationExpectation = expectation(description: "Validation") 
} 

. 
. 
. 

func testSymbolRequest(){ 

     _ = MyCocoapod.makeSymbolRequest(symbol: "ABC", success: { (symbolObject) in 
      self.validationExpectation.fulfill() 
      XCTAssert(true) 
     }) { (error) in 
      self.validationExpectation.fulfill() 
      XCTFail(error.description) 
     } 

     waitForRequestToFinish() 
} 

. 
. 
. 

func waitForRequestToFinish(){ 
    waitForExpectations(timeout: 60.0) { (error) in 
     if let error = error { 
      XCTFail(error.localizedDescription) 
     } 
    } 
} 

waitForExpectations関数はまったく待機していません。それはすぐに呼び出された後に失敗します。私は実際のネットワーキングコードとは関係がないことを確認しており、リクエストはCocoapodのサンプルプロジェクトで完璧に動作します。私はAlamofireを使用しています。私はそれが問題だとは思わないが、言及する価値があると思った。表示されるエラーメッセージは「不明なエラー」です。

答えて

0

何らかの理由で開発中のCocoaPodをテストしようとすると、作成するデフォルトのテストターゲットによって、waitForExpectations()関数がその特定のテストターゲットに対して正しく機能しなくなります。 は

  • 新しいテストターゲットを作成し、現在の検査対象を削除
    1. インストールしてくださいポッドファイルが更新されていることを確認ポッドを実行します。私はそれが最終的にためにこれらのステップを実行して、仕事を得ることができましたしたがって、

    この手順を実行すると、waitForExpectations()がネットワーク要求内で最終的に機能するようになりました。

  • 関連する問題