es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una manera de realizar pruebas unitarias para verificar si el controlador de vista se ha agregado en el hilo principal?

Digamos que tengo este código como ejemplo

finall class SomeTests: XCTTestCase {
    private var coordinator: SomeCoordinator!

<pre><code>override func setUp() {
    super.setup()
    coordinator = SomeCoordinator()
}

override func tearDown() {
    super.tearDown()
    coordinator = nil
}

func testStartPushesCustomViewController() {
     coordinator.start()
     XCTAssertTrue(coordinator.navController.viewControllers.last is CustomViewcontroller)

    XCTAssert // -> realizar una aserción de que el CustomViewController se empuja en el hilo principal
}
</code></pre>

<p>}

¿Es posible encontrar una manera de escribir una prueba unitaria donde podamos demostrar que el controlador de vista se empuja en el hilo principal?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible escribir una prueba unitaria para demostrar que el controlador de vista se empuja en el hilo principal. Una solución es utilizar la función XCTAssertEqual para comparar el valor de Thread.current.isMainThread con true después de que el controlador de vista se empuje. Aquí hay un ejemplo:

    func testStartPushesCustomViewController() {
        coordinator.start()
    
        XCTAssertTrue(coordinator.navController.viewControllers.last is CustomViewController)
    
        XCTAssertTrue(Thread.current.isMainThread, "El controlador de vista debe ser empujado en el hilo principal")
    }
    

    Esta prueba pasará si el controlador de vista se empuja en el hilo principal y fallará si se empuja en un hilo diferente.

Comments are closed.