Test View Controllers отдельно
Я использую Quick/Nimble
для тестирования в моем приложении. Это первый раз, когда я делаю тесты. У меня есть три VC в моем приложении, встроенном в navigationController
как это:
StoryBoard1(NAV -> VC1 -> VC2)->StoryBoard2(VC3).
Я хочу проверить каждый viewController
отдельно означает, что когда запускается тест для VC3, например, я не хочу запускать VC1, мне нужен тест, чтобы перейти непосредственно к VC3 и проверить его, имейте в виду, что VC3 находится в отдельном storyBoard
и все они разделяют один NAV в первом storyBoard
, Я пытался сделать это так.
import XCTest
import Quick
import Nimble
@testable import MYApp
class VC3Tests: QuickSpec {
override func spec() {
var vc3: VC3!
var navigationController: UINavigationController!
beforeEach {
let storyBoard2 = UIStoryboard(name: "StoryBoard2", bundle: Bundle.main)
let storyBoard1 = UIStoryboard(name: "StoryBoard1", bundle: Bundle.main)
navigationController = storyBoard1.instantiateInitialViewController() as! UINavigationController
vc3 = storyBoard2.instantiateViewController(withIdentifier: NSStringFromClass(VC3.self)) as! VC3
navigationController.pushViewController(vc3, animated: false)
expect(navigationController.visibleViewController).toEventually(beAnInstanceOf(VC3.self),timeout: 3,pollInterval: 1)
_ = navigationController?.view
_ = vc3.view
}
}
}
Но он не подталкивает к VC3, и при запуске он просто остается на VC1. Я делаю что-то неправильно?