¿Qué marcos existen para probar la unidad código Objective-C? Me gustaría un framework que se integre muy bien con Xcode.¿Cuál es la mejor manera de probar la unidad código Objective-C?
Respuesta
Xcode incluye XCTest, que es similar a OCUnit, un marco de prueba de unidad Objective-C, y tiene soporte total para ejecutar pruebas de unidades basadas en XCTest como parte del proceso de compilación de su proyecto. El soporte de prueba unitaria de Xcode se describe en el Xcode Overview: Using Unit Tests.
En los Xcode 2 días, me escribió una serie de entradas del blog acerca de cómo realizar algunas tareas comunes con unidad de Xcode prueba:
- Unit testing Cocoa frameworks
- Debugging Cocoa framework unit tests
- Unit testing Cocoa applications
- Debugging Cocoa application unit tests
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 en la mayoría de los casos no tiene que girar un bucle de evento ni nada de eso.
- Trust, but verify.
- Unit testing Cocoa user interfaces: Target-Action
- Unit testing Cocoa user interfaces: Cocoa Bindings
Esto hace que sea posible hacer desarrollo basado en pruebas no sólo para el código de nivel de modelo, sino también su nivel de control e incluso a nivel de la vista código.
Peter Hosey también dio una buena presentación sobre Pruebas de unidad de cacao en la reunión Cocoaheads de Lake Forest, CA en diciembre. Aquí hay un video: http://vimeo.com/2725498 –
Cuando comencé a usar iOS hace aproximadamente un año, encontré que OCUnit tenía (para mí) un serio inconveniente: no podía ejecutarlo en el simulador o dispositivo. Puede haber cambiado desde entonces. No lo he comprobado, pero he estado usando GHUnit simplemente por ese motivo. – drekka
¿Hay algún video oficial de desarrollador de Apple sobre este tema? Pasé por WWDC 2011 y 2010 pero no pude encontrar ningún ... extraño, ya que las pruebas son importantes, ¿sí? – Robert
Echa un vistazo OCUnit. La red de desarrolladores de Apple tiene a great introduction.
Comencé a usar la plataforma de prueba Google toolbox para iPhone, y funciona muy bien para mí.
Sen: te (el creador del marco de pruebas incluye con Xcode) explica cómo utilizar OCUnit con un proyecto de iPhone: simple-iphone-ipad-unit-test.
Salida GHUnit por Gabriel Handford:
"Los objetivos de GHUnit son:.
pruebas unitarias se ejecuta dentro de XCode, lo que permite que le permite utilizar plenamente el XCode Depurador Una interfaz gráfica de usuario sencilla para ayudar usted visualice sus pruebas. Muestre las trazas . Se instalable como un marco (para aplicaciones Cocoa) con una configuración de destino simple (o no), o fácil de empaquetar en su iPhone pr oject ".
+1 para GHUnit! Soy nuevo en el desarrollo de iPhone y honestamente puedo decir que tuve GHUnit en funcionamiento sin problemas (las instrucciones son perfectas) en comparación con la pesadilla absoluta de OCUnit y la leve migraña de GTM. ¡GHUnit gana por facilidad de uso y facilidad! –
Tenga en cuenta que esta respuesta y los comentarios que la acompañan fueron escritos hace algún tiempo. Xcode ahora es mucho más compatible con las pruebas basadas en OCUnit, lo que facilita la configuración de las pruebas y su ejecución en el depurador. –
En realidad, hace tiempo que pasé a Kiwi para pruebas unitarias. –
Tenga en cuenta que el proyecto Google Toolbox para Mac (GTM) simplemente amplía/aumenta el marco SenTestingKit de Apple (que, en sí mismo, se basa en OCUnit).Como dicen en el sitio del proyecto:
GTM tiene varios mejora a la SenTestingKit estándar que permite a hacer las pruebas unitarias de interfaz de usuario, automatizado vinculante unidad de pruebas, seguimiento de la madera, y la unidad de prueba en el iPhone, como así como herramientas para hacer pruebas estáticas y dinámicas de su código.
Nota el siguiente comentario acerca de las pruebas de interfaz de usuario:
GTM tiene un buen soporte para el usuario pruebas de unidad de interfaz. Es compatible con probando el estado interno de imágenes y/o de casi todos los objetos UI Cacao/UIKit estándar, y hace que sea más fácil extender este soporte a sus propios objetos UI.
Consulte la página "Code Verification and Unit Testing" para obtener instrucciones sobre cómo usarlo.
También recomendaría usar herramientas de cobertura para ver qué parte del código está cubierto con pruebas de unidad 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 precisamente eso.
Recomiendo gh-unit, tiene una buena GUI para los resultados de las pruebas.
llegué a la conclusión de que GHUnit es el marco de pruebas más avanzada para Objective-C. He hecho un roundup de 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 está basado en GTM, hereda todas las ventajas de GTM sobre SenTestingKit pero también agrega muchas más. Otra ventaja es que se mantiene de manera muy activa.
He realizado un esfuerzo para integrar OCMock en GHUnit, ¡funciona genial !. Puede obtener el código en github.
Matt Gallagher de Cocoa with Love tiene un very good article en pruebas unitarias.
Uso SimpleUnitTest funciona con las librerías de iPhone y iPad.
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
Viene con una plantilla de Xcode prueba unitaria para agregar fácilmente una clase de prueba de unidad. Wraps GTM.
Puede literalmente colocarlo en un proyecto activo y comenzar a agregar pruebas unitarias en 3 minutos (o menos).
Er ... ¿se supone que falla tan pronto como lo ejecutas? – quantumpotato
Por supuesto que no ... A menos que falle una prueba. –
El Unit Testing support bundled within xcode (por su configuración simple) combinado con ocrunner (para algunos bondad de autotest/Growl) es actualmente mi configuración favorita de Obj-C Unit Testing.
Me doy cuenta de que esta es una pregunta antigua, pero si prefiere las pruebas de estilo BDD (rspec, Jasmine, etc.) sobre xUnit-style testing (Test :: Unit, JSUnit, JUnit, etc.), entonces puede considerar retirar Cedar. Cedar trae pruebas de estilo BDD a Objective-C, ahora que el lenguaje admite cierres.
Estamos felices de usar Cedar para nuestros proyectos iOS en Pivotal Labs, y estamos trabajando activamente para mejorarlo. Cualquier comentario o sugerencia son bienvenidos en [email protected]
aquí es un montón de ellos
Yo sugeriría mirar en el kiwi, una BDD marco de pruebas de código abierto para iOS: Kiwi
salida WIKI del proyecto para iniciar o conseguir el libro de Daniel Steinberg "prueba de conducción iOS Desarrollo con kiwi" test-driving-ios-development
Kiwi también es compatible con OS X, consulte https://github.com/allending/Kiwi/wiki/Up-and-Running-with-Kiwi-for-Mac – dbainbridge
La página de inicio de Kiwi GitHub se ha trasladado a https://github.com/ kiwi-bdd/Kiwi – jk7
Espero que pueda usar 'SenTestKit', desde el cual puede probar todos y cada uno de los métodos.
Specta es un moderno marco TDD (desarrollo impulsado por prueba)/BDD (desarrollo conducido por comportamiento) que se ejecuta sobre XCTest. Admite pruebas unitarias para proyectos iOS y Mac OS X.
- 1. ¿Cuál es la mejor manera de probar el código GWT
- 2. ¿Cuál es la mejor manera de probar la unidad de un método asincrónico?
- 3. ¿Cuál es la mejor manera de probar javascript?
- 4. ¿Cuál es la mejor manera de probar un procedimiento almacenado?
- 5. ¿Cuál es la mejor manera de probar un RedirectToAction?
- 6. ¿Cuál es la mejor manera de documentar el código f #?
- 7. ¿Cuál es una buena manera de probar la unidad de métodos/clases/funciones de C++?
- 8. ¿Cuál es la mejor manera de probar la validez de XML a partir de un método?
- 9. ¿Cuál es la mejor manera de probar la conexión de SQL Server mediante programación?
- 10. ¿Cómo puedo probar la unidad? ¿Es descartable?
- 11. ¿Cuál es la mejor manera de probar unidades los mensajes de registro SLF4J?
- 12. Cómo probar el código sincronizado de la unidad
- 13. ¿Cuál es la mejor manera de probar los servicios de WCF?
- 14. ¿Cómo probar la unidad?
- 15. ¿Cuál es la mejor manera de probar las cadenas retrayed_job con rSpec?
- 16. ¿Cuál es el mejor método para probar la serialización?
- 17. ¿Cuál es la mejor manera de ampliar la funcionalidad?
- 18. ¿Cuál es la mejor manera de probar el flujo de trabajo en Spring-Batch?
- 19. ¿Cuál es la mejor manera de probar una aplicación de rieles?
- 20. ¿Cuál es la mejor manera de probar una implementación de Mutex?
- 21. Cómo probar las subclases de la unidad
- 22. ¿Cuál es la mejor manera de inicializar un frijol?
- 23. ¿Cuál es la mejor manera de afirmar la igualdad numpy.array?
- 24. ¿Cuál es la mejor manera de dibujar en la consola?
- 25. Cómo probar la unidad Código de Excel VBA
- 26. Cuál es la mejor manera de probar un componente EJB3 sin tener que implementar el componente
- 27. ¿Cuál es la mejor manera de probar una cadena vacía con jquery-out-of-the-box?
- 28. ¿Cuál es la mejor manera de probar un elemento en DOM
- 29. ¿Cómo debo probar la unidad de un generador de código?
- 30. ¿La mejor manera para probar unidades de proyectos MonoTouch?
Que yo sepa, las respuestas aquí son obsoletas. Apple ahora tiene XCTest, que lo ayuda a resolver este problema. Creo que la mayoría de las respuestas necesitan ser actualizadas. – Honey