2013-09-25 2 views
1

У меня возникли проблемы с настройкой OCMockito (и OCHamcrest) с Cocoapods на Xcode 5. Это мой Podfile:Вопросы о настройке OCMockito с Cocoapods

platform :ios, '5.0' 
pod 'RestKit', '~> 0.20.0' 
pod 'OCMockito', '~> 1.0.0' 
link_with ['WeatherApp', 'WeatherAppTests'] 

Когда я пытаюсь следовать настройки IOS Project (https://github.com/jonreid/OCMockito#adding-ocmockito-to-your-project) , 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 только с целевым объектом?

Заранее благодарим за помощь.

UPDATE:

Это Pods.xcconfig generetad по 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 не установлен правильно, это стручок неправильно то?

UPDATE:

Это есть содержимое пакетиков/Headers/OCMockito

Pods/Headers/OCMockito

+0

Вы проверили, что Pods.xcconfig устанавливает эти заголовки должным образом? – MishieMoo

+0

Я обновил свой вопрос, кажется, что заголовки настроены неправильно. – Ruenzuo

+0

Заголовки OCMockito должны быть в разделе «Pods/Headers/OCMockito». Вы уверены, что не переопределяете какие-либо параметры конфигурации проекта или целевой сборки? – MishieMoo

ответ

1

OCHamcrestIOS относится только к использованию в скомпилированных рамках IOS. При использовании CocoaPods просто импортируйте OCHamcrest.

1

Чтобы использовать 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 
+0

Спасибо за помощь, это было действительно полезно. – Ruenzuo