Eche un vistazo a cómo se implementan las macros STAssert
en OCUnit (SenTestingKit, incluidas con Xcode).
en su propio paquete de prueba de unidad, que podría poner en práctica una categoría en NSObject
añadir métodos como una hipotética -shouldBeValid
que luego llamar a la misma pasa/no pasa maquinaria que los STAssert
macros hacen ahora.
En caso de que no esté íntimamente familiarizado con el preprocesador de C ...
Es posible que también tiene que utilizar un #define
para sus macros para pasar a través de los valores correctos para __FILE__
y __LINE__
Cuando los análisis de BDD fallar. Por ejemplo, puede que tenga que hacer algo como esto:
@interface NSObject (BehaviorDrivenDevelopment)
- (void)shouldBeValidInFile:(const char *)file line:(int)line;
@end
#define shouldBeValid shouldBeValidInFile:__FILE__ line:__LINE__
De esa manera debe invocar esta manera:
[[someObject methodUnderTest:argument] shouldBeValid];
El código del compilador ve que será este:
[[someObject methodUnderTest:argument] shouldBeValidInFile:__FILE__ line:__LINE__];
Las macros del preprocesador __FILE__
y __LINE__
se expandirán al archivo y la línea actuales en el archivo fuente de prueba.
De esta manera, cuando tiene una prueba que falla, puede pasar la información apropiada a SenTestingKit para enviar de vuelta a Xcode. La falla se mostrará correctamente en la ventana Generar resultados, y al hacer clic en ella, accederá a la ubicación exacta de la falla en sus pruebas.
El proyecto parece estar activo y se ve como lo que necesito. ¡Gracias! –
Gracias, esto es muy bueno. –