Вопросы по настройке OCMockito с Cocoapods
У меня проблемы с настройкой OCMockito (и OCHamcrest) с Cocoapods на Xcode 5. Это мой Podfile:
platform :ios, '5.0'
pod 'RestKit', '~> 0.20.0'
pod 'OCMockito', '~> 1.0.0'
link_with ['WeatherApp', 'WeatherAppTests']
Когда я пытаюсь следовать настройке проекта iOS ( https://github.com/jonreid/OCMockito), Xcode не может найти этот импорт:
#define HC_SHORTHAND
#import <OCHamcrestIOS/OCHamcrestIOS.h>
#define MOCKITO_SHORTHAND
#import <OCMockitoIOS/OCMockitoIOS.h>
Поэтому я попытался сделать это insted:
#define HC_SHORTHAND
#import <OCHamcrest/OCHamcrest.h>
#define MOCKITO_SHORTHAND
#import <OCMockito/OCMockito.h>
Это работает, но я не знаю, нормально ли это.
Также у меня есть еще один вопрос. Насколько я понимаю, я связываю RestKit и OCMockito и с моей основной целью, и с моей целью тестирования. Можно ли связать RestKit на обеих целях, но связать OCMockito только с целью тестирования?
Заранее спасибо за помощь.
ОБНОВИТЬ:
Это файл Pods.xcconfig, созданный Cocoapods:
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit/CoreData" "${PODS_ROOT}/Headers/RestKit/RestKit/Network" "${PODS_ROOT}/Headers/RestKit/RestKit/ObjectMapping" "${PODS_ROOT}/Headers/RestKit/RestKit/Support" "${PODS_ROOT}/Headers/SOCKit" "${PODS_ROOT}/Headers/TransitionKit"
OTHER_LDFLAGS = -ObjC -framework CFNetwork -framework CoreData -framework CoreGraphics -framework MobileCoreServices -framework Security -framework SystemConfiguration
PODS_ROOT = ${SRCROOT}/Pods
Похоже, что заголовки IOS не настроены правильно, тогда модуль не так?
ОБНОВИТЬ:
Это содержимое Pods/Headers/OCMockito
2 ответа
OCHamcrestIOS применяется только к использованию готовой платформы iOS. При использовании CocoaPods просто импортируйте OCHamcrest.
Чтобы использовать OCHamcrest (или OCMockito) в вашем тестовом целевом пакете, а не в основном приложении, вы можете добавить что-то вроде этого в Podfile:
target :YourTestTarget, :exclusive => true do
pod 'OCHamcrest', '~> 3.0'
pod 'OCMockito', '~> 1.0'
#pod 'RestKit/Testing'
end
Если вы планируете провести модульное тестирование своего сопоставления RestKit (и т. Д.), Вы можете также включить RestKit / Testing в свой комплект.
Тогда вы просто включите это так:
#define HC_SHORTHAND
#import <OCHamcrest/OCHamcrest.h>
#define MOCKITO_SHORTHAND
#import <OCMockito/OCMockito.h>
Вот как может выглядеть ваш полный Podfile:
platform :ios, '5.1'
pod 'Appirater', '~> 0.0.2'
pod 'FlurrySDK', '~> 4.0.5'
pod 'RestKit', '~> 0.21.0'
target :FooBarTests, :exclusive => true do
#pod 'RestKit/Testing'
pod 'OCHamcrest', '~> 3.0'
pod 'OCMockito', '~> 1.0'
end