2016-01-28 4 views
0

Я новичок в тестировании, поэтому я спотыкаюсь о проверке внутренней функциональности на некоторых частях кода. Как проверить только функции privateParseAndCheck и/или privateFurtherProcessing с различными входами, но я не хочу, чтобы это публичные функции?Проверка кода внутреннего блока

-(BOOL) publicFunction() 
{ 
    //some stuff with network 
    NSError* error; 
    NSData* data = load(&error); 
    //now I got data and parse and check 
    BOOL result = privateParseAndCheck(data, error, ...); 

    if(result) { 
    privateFurtherProcessing(); 
    } 
    return result; 
} 

Переписывает код решения? Я также заинтересован в некоторых опытах с советами/решениями на Xcode Server.

ответ

1

Если есть простой способ проверить, что вы хотите только из общедоступных методов, сделайте это.

Если нет, у вас есть выбор: вы можете выставить метод только для проверки кода. Это обычная практика, но я не рекомендую это делать. Он запрещает другой вариант ...

Или, выставляйте метод полностью. Если это заставляет вас чувствовать себя некомфортно, , вероятно, есть класс, пытающийся выбраться. Извлеките класс (методы, которые вы хотите протестировать, и все, что имеет смысл идти с ними.) Теперь вы можете протестировать этот класс.

Это особенно полезно при сложении различных условий (например, различных ошибок). Извлеките, и это легко.

Дополнительная информация: Testability, Information Hiding, and the Class Trying to Get Out