Test View Controllers отдельно - PullRequest
0 голосов
/ 04 мая 2018

Я использую 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. Я что-то не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...