ios - 如何使用 RxSwift 强制点击 UIButton?

标签 ios swift testing rx-swift

这就是我在 UIButton 上订阅点击操作的方式:

_ = mainView.loginButton.rx.tap.subscribe { _ in
    //this is not called at all
}

现在我需要强制执行该操作以检查我的依赖项是否正常工作,但未调用订阅处理程序。

func testRouterDidCallWithError() {
    let view = LoginView()
    let controller = LoginViewController(view: view)
    controller.loadView()
    view.loginButton.sendActions(for: .touchUpInside) //here is the point
}

最佳答案

这有效(“ReactiveX/RxSwift”~> 4.0)

someButton.rx.tap
        .bind {
            debugPrint("button tapped")
        }
        .disposed(by: disposeBag)

别处

someButton.sendActions(for: .touchUpInside)

关于ios - 如何使用 RxSwift 强制点击 UIButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51652030/

相关文章:

angularjs - 通过 Protractor 获取嵌套元素

javascript - indexOf 不是 Firefox、Opera 中的函数,但在 IE 中有效,javascript 中的 indexOf 替代项用于测试字符串包含?

ios - 使用 RSSParser 进行 Today 扩展小组件

ios - SwiftDate - 迄今为止的字符串

swift - Swift 2.0 中有什么方法可以使扩展方法可选实现吗?

ios - swift 单例

来自 AST 上下文 :"的 Swift "error: in auto-import: failed to get module ' foo'

asp.net - 尝试模拟依赖项并向 IoC 容器注册时出现 System.InvalidOperationException

ios - 慢速网络 - DidSelectRowAtIndexPath 延迟

ios - 利用时间快速改变主题