大家好我正在尝试测试我项目的ViewControllers之一.这个类依赖于另一个辅助类,如下所示:
private let dispatcher: Dispatcher = Dispatcher.sharedInstance
private var loginSync = LoginSync.sharedInstance
private var metadataSync = MetadataSync.sharedInstance
Run Code Online (Sandbox Code Playgroud)
这些辅助类在UIViewController生命周期中使用,如viewDidLoad或viewWillAppear.在我的测试中,我使用UIStoryboard类实例化ViewController类,如下所示:
func testSearchBarAddedIntoNavigationViewForiOS11OrMore() {
// Given a YourFlow ViewController embedded in a navigation controller
let mockLoginSync = MockLoginSync()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
// Here is too early and view controller is not instantiated yet and I can't assign the mock.
let vc = storyboard.instantiateViewController(withIdentifier: "YourFlow")
// Here is too late and viewDidLoad has already been called so assigning the mock …Run Code Online (Sandbox Code Playgroud)