Я пишу некоторые тесты, где мне нужноНевозможно окурок метки времени на макет объекта CLLocation в Киви
- заглушки вызов макета CLLocationManager вернуть ОПРЕДЕЛЕННУЮ CLLocation
- и в своей очереди, что CLLocation должен иметь метку времени, что в последние
Создание экземпляров CLLocation достаточно легко, но свойство временной метки на нем только для чтения и фиксируется на момент времени, когда был создан экземпляр. Итак, я планировал создать макет CLLocation, а также отключить вызов timestamp.
Итак, код выглядит следующим образом:
[[CLLocationManager stubAndReturn:theValue(YES)] locationServicesEnabled];
NSDate *oldDate = [IPPOTestSupportMethods createNSDateSubtractingDays:2];
//TODO - Why is line below failing
[[expectedOldLocationMock stubAndReturn:oldDate] timestamp];
[[locationMgrMock stubAndReturn:expectedOldLocationMock] location];
В общем, у меня есть макет CLLocationManager, я создаю NSDate, который на два дня раньше, чем сегодня. Я хочу, чтобы эта дата была возвращена, когда я звоню
[cllocationmock timestamp];
Однако, я получаю семантический выпуск и ARC.
IPPOLocationManagerDelegateImplKiwiTests.m:203:33: Multiple methods named 'timestamp' found with mismatched result, parameter type or attributes
Это проблема в Киви, или я что-то упускаю?
Спасибо. Это сработало для меня. Также спасибо за объяснение. Я использовал метод stubAndReturn, потому что я лично нашел его более читаемым. Итак, объяснение дает понять, почему я не могу его использовать. –
[stubAndReturn] (https://github.com/allending/Kiwi/wiki/Mocks-and-Stubs) иногда кажется более читаемым, и он имеет то преимущество, что вы можете сделать заглушку, специфичную для определенной комбинации значений параметров , –