ventajas desventajas comparativa beneficios apple ios unit-testing ios7 xcode5 sentestingkit

comparativa - ios vs android ventajas y desventajas 2017



¿Cuáles son las ventajas de XCTest sobre SenTestingKit? (3)

La documentación de Apple carece notablemente de pruebas. Es una pena, porque pasar cinco minutos con XCTest me hizo caer en la trampa. Por lo tanto, aquí hay algunos documentos que pueden ser útiles.

Primero, deténgase y vea el video de WWDC sobre pruebas: https://developer.apple.com/wwdc/videos/?include=409#409 (debe ser un desarrollador registrado)

Luego, lee sobre Bots. Son la verdadera magia en XCTest. Actualmente estoy configurando un entorno de un Mac Mini con el servidor Mavericks conectado a una pequeña variedad de iPod Touch, iPhones y iPads que ejecutarán simultáneamente mis pruebas de unidad e informarán al respecto. Está malditamente cerca de la magia.

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/000-About_Continuous_Integration/about_continuous_integration.html#//apple_ref/doc/uid/TP40013292

Dicho todo esto, no conozco a SenTest lo suficientemente bien como para comparar los dos. Pero estoy aprendiendo XCTest, así que aquí hay algunos pensamientos sobre lo que realmente estoy investigando al respecto hasta ahora.

  • Ya está ahí. No hay nada para descargar, y puedes hacer tus objetos de clase de prueba al mismo tiempo que haces lo que deseas probar. Rad.
  • Debido a que está integrado tan profundamente con Xcode, puede ver la cobertura de la prueba en el canal. También puede utilizar la Vista de compañero para ver los probadores de origen o el origen de los métodos de probador. Además, siempre estará actualizado, sin esperar a que se arregle la integración con Xcode porque Apple "rompió" algo.
  • Integración continua. Los bots son simplemente mágicos, y son muy fáciles. También obtienes Git hosting, que es un pequeño beneficio adicional, pero más aún si prefieres tu Git alojado internamente pero no quieres pagar por GitHub Enterprise.

Y, unas pocas contras por medida:

  • Falta de documentación. Pedirme que lea los encabezados para obtener una lista de afirmaciones es un movimiento aburrido. No tengo dudas de que Apple solucionará esto pronto, pero no lo suficientemente pronto.
  • Estás atado a Xcode un poco más profundamente. No es realmente una estafa para el desarrollo, pero las secuencias de comandos XCTest no son tan elegantes como otras opciones pueden ser.
  • La integración continua requiere OS X Server. Puede estar en la misma máquina si realmente lo desea, pero la compra es de $ 20, incluso si es propietario de Mountain Lion Server. No estoy del todo amargado por esto (ha).

Mis dos centavos. Espero eso ayude. Realmente recomiendo ver el video al que me he vinculado: realizan la creación de pruebas en vivo y constituyen un caso realmente convincente para las pruebas de unidades en general, independientemente de si utiliza XCTest.

Quiero hacer pruebas de unidad en iOS. De forma predeterminada, las clases de prueba se crean utilizando las clases de marco XCTest en Xcode 5. He usado SenTestingKit en versiones anteriores de iOS. ¿Cuáles son las diferencias entre estos dos marcos? ¿Cuáles son las ventajas del framework XCTest? Busqué en Google para la documentación relacionada pero no encontré ninguna. Lo único que encontré son las clases de interfaz para usar dentro del kit. ¿Alguien puede indicarme los recursos relacionados?


Parece que las ventajas son pocas en la actualidad, pero eso se espera que cambie con el tiempo, por lo que se inicia una wiki comunitaria para documentar algunas:

  • La familia de macros XCTAssert… puede manejarlo XCTAssert… el parámetro de format (usado para comentar por qué debe pasar una prueba) por completo. Esto es útil para mantener limpias en el editor las pruebas simples (donde es obvio en la prueba lo que está haciendo). STAssert… nos obligó a que el parámetro de format nil o STAssert… .
  • Hay una XCTAssert() genérica de XCTAssert() , que se siente mejor que algunos tipos de cheques en STAssertTrue .