Цель C - модульное тестирование основных функций в частных методах?

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

Например:

[[self.objectMock expect] privateMethod];
or 
[self.object callPrivateMethodsToExpectSomeOtherBehaviour]

РЕДАКТИРОВАТЬ:

Вот пример, чтобы продемонстрировать, почему я чувствую, что мне нужно протестировать некоторые частные методы. Эти тесты не разумны? Как еще я могу проверить, что вызов clear на самом деле делает то, что предполагает?

- (void)clear
{
   self.orderNumber = nil;
   [self.items removeAllObjects];
   // Clear the rest of fields
}

- (void)testClearShouldRemoveOrderNumber
{
   Order *order = [[Order alloc] init];
   OCMockObject *orderPartialMock = [OCmockObject partialMockForObject:order];

   [[orderPartialMock.items expect] setOrderNumber:nil];
   [orderPartialMock clear];
   [orderPartialMock verify];
}

- (void)testClearShouldRemoveItems
{
    Order *order = [[Order alloc] init];
    order.items = [[OCMockObject niceMockForClass:[NSMutableArray class]];

    [[orderPartialMock.items expect] removeAllObjects];
    [orderPartialMock performSelector@selector(clear)];
    [orderPartialMock.items verify];
}

Ответы на вопрос(4)

Ваш ответ на вопрос