Я не использую тест Sen, потому что он не запускается в симуляторе или устройстве (или, по крайней мере, не работал, когда я впервые начал выполнять Objective C в прошлом году), вместо этого я использую GHUnit фреймворк для тестирования и OCMock в качестве фреймворка GHUnit будет запускать тесты на устройстве, которое гарантирует, что код правильный для него. OCMock допускает полную насмешку, частичную насмешку и извращение методов, которые являются мощными инструментами для юнит-теста.
Я думаю, что есть две части для тестирования в этой ситуации.
Модульное тестирование отдельных компонентов (GHUnit и OCMock). Здесь вы можете вызывать методы напрямую и моделировать среду, в которой будет работать ваш класс. Поэтому вам не нужна настройка сервера для тестирования асинхронных вызовов. Просто создайте экземпляр класса в модульном тесте и вызовите его методы.
Интеграционное тестирование. (Только GHUnit) Здесь вы хотите выполнить базовый тест, чтобы убедиться в правильности вашего понимания связи между вашим кодом и сервером. Так что это где вам нужен сервер. В зависимости от ваших потребностей, это может быть много или мало работы. Например, когда я сделал это, я просто настроил сервер Glassfish с EJB3-бином, чтобы имитировать сервер, к которому я собираюсь подключиться. Важно то, что настроенный вами сервер должен вести себя точно так же, как и конечный производственный сервер.
Так что в основном это двусторонний подход. Модульное тестирование, чтобы проверить каждый уголок вашего кода. Интеграционное тестирование для проверки правильности общего взаимодействия с сервером.
Важно использовать оба, потому что, хотя модульное тестирование может проверять функциональность, которую сложно проверить с помощью интеграционного теста, оно является настолько же точным, как и ваше понимание взаимодействия между классом и сервером. Таким образом, вам нужен хотя бы базовый интеграционный тест, чтобы подтвердить правильность вашего понимания. Но не тратьте время на написание множества интеграционных тестов, чтобы проверить каждый закоулок класса. Это всегда намного сложнее, чем юнит-тест.