Я хотел бы написать тесты блочных ящиков для метода, который вызывает другой с задержкой. Это своего рода выглядит следующим образом:Единичное тестирование метода с задержкой в Objective-C
- (void) doSomething {
// Do something
[self performSelector:@selector(doSomethingLater) withObject:nil afterDelay:kDelay];
}
- (void) doSomethingLater { }
Где kDelay
постоянная и doSomethingLater
является частным. Проблема в том, что kDelay
составляет 1 секунду, и я не хочу замедлять выполнение модульных тестов.
Что было бы лучшим способом модульного теста doSomething
под черным ящиком (или насколько это возможно)?
Единственное, что приходит на ум - добавить метод к классу, чтобы изменить значение kDelay
, но это может быть использовано другим разработчиком случайно. Существует ли менее инвазивная альтернатива?
Думаю, я бы сказал, что это инвазивное по-другому. –
Проблема с этим подходом заключается в том, что если по какой-то причине кто-то решает изменить performSelector для другого метода с задержкой, тогда тест будет медленным, и никто не узнает, почему. – hpique
Было бы здорово, если бы у вас зависали постоянные. – hpique