Ejemplo de prueba unitaria con OCUnit

Estoy realmente luchando para entender las pruebas de unidad. Entiendo la importancia de TDD, pero todos los ejemplos de pruebas de unidad que leí parecen ser extremadamente simples y triviales. Por ejemplo, probar para asegurarse de que una propiedad está establecida o si la memoria está asignada a una matriz. ¿Por qué? Si yo código..alloc] init], ¿realmente necesito asegurarme de que funcione?

Soy nuevo en el desarrollo, así que estoy seguro de que me estoy perdiendo algo aquí, especialmente con toda la locura que rodea a TDD.

Creo que mi principal problema es que no puedo encontrar ningún ejemplo práctico. Aquí hay un método.setReminderId Eso parece ser un buen candidato para la prueba. ¿Cómo sería una prueba de unidad útil para asegurarse de que esto funciona? (usando OCUnit)

- (NSNumber *)setReminderId: (NSDictionary *)reminderData
{
    NSNumber *currentReminderId = [[NSUserDefaults standardUserDefaults] objectForKey:@"currentReminderId"];
    if (currentReminderId) {
        // Increment the last reminderId
        currentReminderId = @(currentReminderId.intValue + 1);
    }
    else {
        // Set to 0 if it doesn't already exist
        currentReminderId = @0;
    }
    // Update currentReminderId to model
    [[NSUserDefaults standardUserDefaults] setObject:currentReminderId forKey:@"currentReminderId"];

    return currentReminderId;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta