unitarias software pruebas prueba para herramientas funcionales ejemplos casos ios unit-testing swift access-control xctest

ios - software - Agregar archivos Swift para probar el objetivo y no corregir las pruebas unitarias



pruebas unitarias android (3)

Después de muchos dolores de cabeza y de poner esto en un segundo plano, descubrí que el principal problema era cuando agregaba archivos a la membresía objetivo de la prueba, las clases de Objective-C todavía se quejaban. Pensé que era un viejo problema de compatibilidad con la nueva forma en que Swift realiza las pruebas unitarias, pero la solución era que mi objetivo de prueba no sabía que había un encabezado puente . Por lo tanto, agregué una referencia a ella en la configuración de compilación de mi objetivo de prueba, de esta manera:

Parece simple y obvio ahora, pero los errores no fueron útiles. Ninguna otra solución que vi para las pruebas unitarias de Swift sugirió que esto podría ser un problema, pero ahora lo sé.

Tl; dr

Para que las pruebas unitarias funcionen en Swift, el objetivo de la prueba debe saber todo lo que sabe el objetivo de la aplicación, así que agregue también una referencia a su encabezado de conexión en su objetivo de prueba (si corresponde).

He revisado muchos blogs y he intentado hacer muchas cosas para que las pruebas de mi unidad Swift funcionen en Xcode 6.0.1 (o 6.1 para el caso). Intento acceder a las clases en el destino de mi aplicación, así que escribí esta línea:

var vc: LoginViewController!

Por supuesto, obtengo el error "Uso de tipo no declarado ''LoginViewController''".

Luego trato de agregar LoginViewController a mi objetivo de prueba, pero luego obtengo el "uso de identificadores no resueltos" en otras clases de mi proyecto. Así que trato de agregar esas clases a mi objetivo de prueba, pero termino con una fuente aparentemente interminable de errores como la siguiente captura de pantalla:

Declarar todas mis clases como públicas, causa otros errores y parece una mala práctica. ¿Hay alguna forma de incluir pruebas unitarias en un proyecto Swift que se basa en muchos marcos y clases? Simplemente quiero comenzar con algo casi exactamente como el código en este article .


Estoy usando Xcode 6.1

Debe agregar su archivo rápido a la target membership del target membership de prueba


Si está utilizando Xcode 7, ahora hay una forma mucho mejor de lidiar con esto usando @testable import {ModuleName} .

Solo asegúrese de que el módulo que desea probar tiene la configuración de compilación Enable Testability prueba establecida en YES .