Me pregunto cómo hacer esto. Tengo un método que toma un parámetro y, en función de algunas propiedades de ese parámetro, crea otro objeto y opera en él. El código es como la siguiente:¿Cómo puedo probar un objeto interno de un método en Objective-C?
- (void) navigate:(NavContext *)context {
Destination * dest = [[Destination alloc] initWithContext:context];
if (context.isValid) {
[dest doSomething];
} else {
// something else
}
[dest release];
}
Lo que quiero para verificar si es que context.isValid es cierto, que doSomething se llama el mostrador, pero no sé cómo probar que (o si eso es aún posible) utilizando OCMock o cualquier otro método de prueba tradicional, ya que ese objeto se crea completamente dentro del alcance del método. ¿Voy por esto de la manera incorrecta?
Esta parece ser la respuesta más fácil, pero parece un poco complicado tener el objeto de destino en vivo en múltiples ámbitos cuando en realidad no es necesario en ningún otro lugar, solo para respaldar las pruebas fáciles. Supongo que hay que hacer concesiones en algún lugar :) – Kevlar
Sí; si desea poder sustituir un objeto Destino por separado, entonces debe tener alguna forma de pasarlo. Esta es la manera más limpia que conozco para hacer eso. –