У меня есть простой ViewModel
с одним свойством:
class ViewModel {
var name = Variable<String>("")
}
И привязываю его к UITextField
в моем ViewController
:
class ViewController : UIViewController {
var viewModel : ViewModel!
@IBOutlet weak var nameField : UITextField!
private let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// Binding
nameField.rx.text
.orEmpty
.bind(to: viewModel.name)
.disposed(by: disposeBag)
}
}
Теперь я хочу протестировать его.
Я могу заполнить свойство nameField.text
через Rx, используя событие .onNext
- nameField.rx.text.onNext("My Name Here")
.
Но viewModel.name
не заполняется. Почему? Как я могу заставить это поведение Rx работать в моем XCTestCase?
См. Ниже результат моего последнего пробного запуска:
TestScheduler
вместо GCD. Затем вы можете запланировать действие в конкретной команде, и у вас будет гораздо больше контроля. - person damianesteban   schedule 16.02.2018Variable
устарел. У вас естьBehaviorRelay
иPublishRelay
в качестве замены. - person Valérian   schedule 16.02.2018