2017-02-08 3 views
2

UITextFieldeditingChangedイベント特別ハンドラが呼び出されたときにテストしようとしています。そのために、このイベントをsendActionsメソッドでシミュレートします。しかし、それはテストターゲットでは機能しません。すべてのプロジェクトでただOKです(実行モード - シミュレータ)。私は小さな例書いたテストターゲットでUIControlのsendActionsが機能しない

:ここ

class Strange { 
    private let handler:() -> Void 

    init(textField: UITextField, handler: @escaping() -> Void) { 
     self.handler = handler 
     textField.addTarget(self, action:#selector(textableValueChanged), for: .editingChanged) 
    } 

    @objc private func textableValueChanged() { 
     handler() 
    } 
} 

を私は「テスト」プリントを見たいと思ってますが、このハンドラはsendActionsイベントの後に呼び出されていません。私もexpectationで試しましたが、それは私を助けませんでした。

func testStrangeBehaviour() { 
    let expectation = self.expectation(description: "Bla-bla") 
    s = Strange(textField: textfield1) { 
     print("test") 
     expectation.fulfill() 
    } 

    textfield1.sendActions(for: .editingChanged) 
    waitForExpectations(timeout: 5, handler: nil) 
} 

私は間違っていますか?

+0

解決策はhttps://stackoverflow.com/a/39856918/2294228だと思います。私のために働いた。 – olejnjak

答えて

関連する問題