Мы пытаемся создать единичный тест (с OCMock, хотя и открытым для других фреймворков), который высмеивает класс, который при загрузке класса имеет побочный эффект.iOS Mocking Class, который имеет побочные эффекты при загрузке класса
У нас есть класс отслеживания, который включает вызовы в другие библиотеки отслеживания, такие как Flurry.
Многие из этих других библиотек отслеживания (в частности, Flurry) выполняют код инициализации класса.
Тестирование модуля не выполняется, поскольку код не может выполняться в тестовой среде. В идеале мы хотели бы заменить класс Flurry макетом/заглушкой.
- (void) testConstruction {
[Flurry class];
}
Когда этот код называется он пытается использовать SCNetworkReachability
и получает exceptions
...
Как мы можем окурка/издеваться из обращения к Flurry, которая имеет статическую реализацию как следующий?
[Flurry setAppVersion:@"1.0"];
[Flurry setCrashReportingEnabled:NO];
Хм, это сработает. Позволь мне дать это выстрел. –