visual unittest unitarias unit test studio pruebas net mvc ejemplo ejecutar crear unit-testing xcode ocunit

unit testing - unittest - SenTestKit: ¿limpieza después de que se hayan ejecutado TODAS las pruebas?



unit test c# ejemplo (2)

Estoy usando SenTest en XCode para mis pruebas unitarias. Debo ejecutar una tarea de línea de comandos para que mis pruebas unitarias sean probadas. Puedo hacer eso en el método + initialize de mi clase de prueba (subclase de SenTestCase, por supuesto).

Me gustaría finalizar la tarea de la línea de comandos cuando terminen las pruebas. Como no hay un opuesto de + inicializar, estoy perplejo.

¿Hay alguna manera de subclase de una clase SenTest para hacer esto que estoy pasando por alto?


Debería consultar Google Toolbox para Mac o su derivada adicional GHUnit . Ambas (creo) proporcionan una configuración y desmantelamiento a nivel de clase al menos. Si realmente desea ejecutar una línea de comandos antes de ejecutar todas las pruebas y luego una segunda línea de comando (quizás para matar al primero) después de ejecutar las pruebas, modificaría la fase de compilación del script de shell que ejecuta las pruebas unitarias (el último paso en las fases de compilación de un objetivo de paquete UnitTest).


No ejecute su herramienta de línea de comandos en + inicializar. Eso es enviado por el tiempo de ejecución de Objective-C cuando la clase se envía por primera vez cualquier mensaje.

En su lugar, ejecute su herramienta de línea de comandos en el método +setUp su prueba. (Tenga en cuenta que realmente quise decir +setUp y no -setUp , mucha gente parece ser un poco confusa sobre la diferencia entre la clase y los métodos de instancia.)

En este caso, setUp invoca un método setUp clase antes de ejecutar cualquiera de las pruebas en una subclase SenTestCase , y tearDown invoca un método tearDown clase después de ejecutar todas las pruebas en una subclase SenTestCase .

Entonces, el flujo general para una subclase SenTestCase particular es:

  • enviar +setUp a SomeTestCase
  • para cada método de test que comienza en SomeTestCase (llámalo test___ )
    • crear una nueva instancia de SomeTestCase
    • enviar -setUp a él
    • enviar -test___ a él
    • enviar -tearDown to it
    • liberarlo
  • enviar +tearDown a SomeTestCase

De esta forma, si tiene algo que hacer antes de que se ejecute alguno de sus métodos de -test , o algo que deba hacerse después de que se ejecuten todos sus métodos de -test , hay un punto determinista en el que puede lograrlo. (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.)