¿Qué marcos existen para la prueba unitaria del código Objective-C? Me gustaría un marco que se integre bien con Apple Xcode.
¿Qué marcos existen para la prueba unitaria del código Objective-C? Me gustaría un marco que se integre bien con Apple Xcode.
Respuestas:
Xcode incluye XCTest, que es similar a OCUnit , un marco de prueba de unidad Objective-C, y tiene soporte completo para ejecutar pruebas de unidad basadas en XCTest como parte del proceso de construcción de su proyecto. El soporte de pruebas unitarias de Xcode se describe en la Descripción general de Xcode: Uso de pruebas unitarias .
En los 2 días de Xcode, escribí una serie de publicaciones en el blog sobre cómo realizar algunas tareas comunes con las pruebas unitarias de Xcode:
A pesar de usar OCUnit en lugar de XCTest, los conceptos son básicamente los mismos.
Finalmente, también escribí algunas publicaciones sobre cómo escribir pruebas para las interfaces de usuario de Cocoa; la forma en que está estructurado Cocoa lo hace relativamente sencillo, porque no tiene que girar un bucle de eventos ni nada de eso en la mayoría de los casos.
Esto hace posible el desarrollo basado en pruebas no solo para el código de nivel de modelo, sino también para el código de nivel de controlador e incluso de nivel de vista.
Echa un vistazo a GHUnit por Gabriel Handford:
"Los objetivos de GHUnit son:
Ejecuta pruebas unitarias dentro de XCode, lo que le permite utilizar completamente el depurador XCode. Una GUI simple para ayudarlo a visualizar sus pruebas. Mostrar rastros de la pila. Ser instalable como un marco (para aplicaciones de Cocoa) con una configuración de destino simple (o no); o fácil de empaquetar en su proyecto de iPhone ".
Comencé a usar el equipo de prueba de Google Toolbox para iPhone, y está funcionando muy bien para mí.
Echa un vistazo a OCUnit . La red de desarrolladores de Apple tiene una gran introducción .
Tenga en cuenta que el proyecto Google Toolbox para Mac (GTM) simplemente extiende / aumenta el marco SenTestingKit de Apple (que se basa en OCUnit). Como dicen en el sitio del proyecto:
GTM tiene varias mejoras en el SenTestingKit estándar que le permite realizar pruebas de unidad de IU, pruebas de unidad de encuadernación automatizadas, seguimiento de registros y pruebas de unidad en el iPhone, así como herramientas para realizar pruebas estáticas y dinámicas de su código.
Tenga en cuenta el siguiente comentario sobre las pruebas de interfaz de usuario:
GTM tiene un amplio soporte para pruebas de unidad de interfaz de usuario. Es compatible con la prueba de imagen y / o estado interno de casi todos los objetos de interfaz de usuario estándar de Cocoa / UIKit, y le facilita extender este soporte a sus propios objetos de interfaz de usuario.
Consulte la página " Verificación del código y prueba de la unidad " para obtener instrucciones sobre cómo usarlo.
Llegué a la conclusión de que GHUnit es el marco de prueba más avanzado para Objective-C. He hecho un resumen de los marcos de prueba en mi blog. Es el más flexible en términos de implementación (iphone, simulador o mac os nativo) y capacidades de afirmación. Debido a que se basa en GTM, hereda todas las ventajas de GTM sobre SenTestingKit, pero también agrega mucho más. Otra ventaja es que se mantiene de manera muy activa.
He realizado un esfuerzo para integrar OCMock en GHUnit, ¡funciona muy bien! Puedes obtener el código en github .
Me doy cuenta de que esta es una vieja pregunta, pero si prefiere las pruebas de estilo BDD (rspec, Jasmine, etc.) sobre las pruebas de estilo xUnit (Test :: Unit, JSUnit, JUnit, etc.), entonces puede considerar revisar Cedar . Cedar lleva las pruebas de estilo BDD a Objective-C, ahora que el lenguaje admite cierres.
Estamos felices de usar Cedar para nuestros proyectos de iOS en Pivotal Labs , y estamos trabajando activamente para mejorarlo. Cualquier comentario o sugerencia es bienvenida en cedar-discuss@googlegroups.com
También recomendaría usar herramientas de cobertura para ver qué parte del código está cubierta con pruebas unitarias y cuáles no. La cobertura básica de línea y código de sucursal se puede generar con la herramienta GCOV . Si desea generar buenos informes de cobertura HTML, hay LCOV y ZCOV que hacen exactamente eso.
Recomiendo gh-unit, tiene una buena interfaz gráfica de usuario para los resultados de la prueba.
El soporte de Prueba de Unidad incluido en xcode (por su configuración simple) combinado con ocrunner (para algunas bondades de autotest / Growl) es actualmente mi configuración de Prueba de Unidad Obj-C favorita.
aquí hay muchos de ellos
Sen: te (el creador del marco de prueba incluido con Xcode) explica cómo usar OCUnit con un proyecto de iPhone: simple-iphone-ipad-unit-test .
Matt Gallagher de Cocoa with Love tiene un muy buen artículo sobre pruebas unitarias.
Sugeriría buscar Kiwi, un marco de prueba de BDD de código abierto para iOS: Kiwi
Echa un vistazo al WIKI del proyecto para comenzar u obtén el libro de Daniel Steinberg "Probar el desarrollo de iOS con Kiwi" test-driving-ios-development
Yo uso SimpleUnitTest funciona con iPhone y iPad libs.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Viene con una plantilla Xcode de prueba unitaria para agregar fácilmente una clase de prueba unitaria. Envolturas GTM.
Literalmente, puede colocarlo en un proyecto activo y comenzar a agregar pruebas unitarias en 3 minutos (o menos).
Specta es un marco moderno TDD (Test Driven Development) / BDD (Behavior Driven Development) que se ejecuta sobre XCTest. Admite pruebas unitarias para proyectos de iOS y Mac OS X.