2
UITextField
がeditingChanged
イベント特別ハンドラが呼び出されたときにテストしようとしています。そのために、このイベントを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)
}
私は間違っていますか?
解決策はhttps://stackoverflow.com/a/39856918/2294228だと思います。私のために働いた。 – olejnjak