Цель 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];
}