No ejecute la herramienta de línea de comandos en + inicializar. Eso es enviado por el tiempo de ejecución de Objective-C cuando se envía por primera vez a la clase cualquier mensaje.
En su lugar, ejecute la herramienta de línea de comandos en el método +setUp
de su prueba. (Tenga en cuenta que en realidad quería decir +setUp
y no -setUp
;. Mucha gente parece ser un poco borrosa en la diferencia entre los métodos de clase e instancia)
En este caso, un clasesetUp
método es invocado por OCUnit antes cualquier de pruebas en una subclase SenTestCase
se ejecutan, y una clase métodotearDown
es invocado por OCUnit después todos pruebas en una carrera ar SenTestCase
subclase.
lo tanto, el flujo total de SenTestCase
subclase particular es:
- enviar
+setUp
a SomeTestCase
- para cada
test
método de arranque en SomeTestCase
(llámese test___
)
- crear una nueva instancia de
SomeTestCase
- envío
-setUp
a ella
- enviar
-test___
a ella
- enviar
-tearDown
a ella
- liberación que
- enviar
+tearDown
a SomeTestCase
De esta manera si usted tiene algo que hay que hacer antes de que cualquiera de su -test
métodos funcionan, o algo que hay que hacer después de que todos sus -test
ejecutar métodos, hay un punto determinante en wh que puedes hacer que eso suceda (En lugar de confiar en la gestión de la memoria, que no es determinista de la misma manera, y puede no ser determinista en absoluto si está utilizando GC.)
No había encontrado nada que hablara sobre los métodos de + setUp/+ desmontaje. Gracias por la iluminación – Mel