Как стать автором
Обновить

Комментарии 12

Полезный топик. Недавно пытался с моками разобраться, как раз на сети всё и закончилось. Жаль, проголосовать не могу.
Вот в GHUnit уже есть готовый класс для асинхронных тестов.
Спасибо, не встречался с таким. Но, в большинстве случаев я использую Kiwi
Спасибо за топик. Буквально на днях по необходимости сделал механику для ожидания получения нотификаций (NSNotification). А следующим шагом стоял мок для работы с веб сервисом. Смотрел в сторону CocoaHTTPServer. Но он требует ARC. А у меня проект не ARC. После праздников поизучаю OHHTTPStubs.
На самом деле, можно смешивать ARC и не-ARC классы, почитайте про fno-objc-arc/fobjc-arc флаги
… а если использовать CocoaPods, можно вообще не думать об этом :)
Может быть стоит добавить в статью, что OHHTTPStubs — это реализация паттерна проектирования Service Stub. Ну так. Вдруг кто не знает.

И еще у меня вопрос по поводу асинхронных unit-тестов. Я вот недавно имел очень негативный опыт общения с NSRunLoop, когда пытался с помощью него реализовать асинхронные NSOperation. Самое интересное, что проблема проявлялась только на девайсе. Заключалась она в том, что action в блоке do цикла while срабатывал только когда я ставил туда breakpoint в XCode.
С NSRunLoop все, вероятнее всего в полном порядке. Вы, вероятно пытались в NSOperation работать с async-версией NSURLConnection?
Скорее всего да. А как это может повлиять?
Лучше всего почитать тут
да, это известный баг в iOS < 6. NSRunLoop тут не при чем, какой-то баг ни то в GCD, ни то в NSURLConnection

На симуляторе его нет потому как используются десктопные библиотеки, а на маке такого бага нету.
По поводу блоков (не рекламы ради, хотя можно ли рекламировать топики на хабре? о_О =)) предлагаю ознакомиться с моей статьёй про реализацию Block-based Observer-а с жёсткой типизацией на Objective-C++, который призван облегчить уведомление нескольких слушателей о событиях с использованием блоков и более «традиционным» методом подписки:)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории