2016-08-31 5 views
2

これは楽しいかもしれません。私はXCodeでUIテストを設定しています。 私のアプリケーションの一部は、特定の操作を実行するためにユーザーが画面を6回タップする必要があります。コードは以下の通りです。TapGestureを6回繰り返してテストする(iOSとSwift)

 let tapGesture = UITapGestureRecognizer(target: self,action:#selector(self.doSomething(_:))) 
     tapGesture.numberOfTapsRequired = 6 
     aView.addGestureRecognizer(tapGesture) 

ここでは、このジェスチャ認識機能のテストに問題があります。次のコードはテストレコーダーによって作成されますが、テストしただけでは機能しません。

let app = XCUIApplication() 
    let elem = app.otherElements.containingType(.Image, identifier:"elementName").element 
    elem.tap() 
    elem.tap() 
    elem.tap() 
    elem.tap() 
    elem.tap() 
    elem.tap() 

私も(私は1.0と0.02秒の間の値を試してみた程度)各要素の間にわずかな遅延を追加してみましたが、何も、実際に動いていないようにみえ。

どのような考えですか?

答えて

0

これまでに私が見つけたのはこれです。一番早く、タップはUIテスターで1秒を少し過ぎますが、これは長すぎます(広いマージンでさえも)。だから私は回避策をとらなければならなかった(別名:ハック)

ここは私の回避策です。 UITests、IN

  1. は、私が "その他スウィフトフラグ" "-D TEST"を追加したターゲット。今私のコードから、私のメインプロジェクトでプリプロセッサチェックを使うことができます。 '#if TEST'
  2. 私は問題のビューのUIにボタンを追加しました。標準的な "touch up inside"イベントハンドラを介してそれを配線しました。ことを見つけるために、私のUIテストコードを修正

  3. #endifの

    の#if TEST

    myButton.hidden =真

    :!私はこのような何かをした私のビューコントローラで

  4. 代わりに簡単なタップを実行します。

関連する問題