2014-02-21 3 views
1

XCTest 및 OCMock으로 실행되는 기본 앱 Mac 앱을 얻으려고합니다. 하지만 런타임에 오류를 연결 얻고, 난 그냥 잘 실행 여러 일반 XCTests이 있지만 OCMock 테스트는 (다른 테스트가 간결 숨겨진) 작동하지 않습니다 :Xcode에 OCMock을 추가하면 런타임에 연결되지 않습니다.

:

#import <OCMock/OCMock.h> 

- (void)testLoadingInvalidSettingsThrowsAnError 
{ 
    id harkMock = [OCMockObject mockForClass:[Hark class]]; 
    [[[harkMock stub] andReturn:@"bla"] getSettingsAsRawJson]; 
    XCTAssertThrowsSpecificNamed([harkMock loadSettings], NSException, @"InvalidJson"); 
} 

오류가 런타임에서 수신

  1. 다운로드 최신 OCMock.framework을하고 들어 /Library/Frameworks
  2. 로 배치 : 내가 무슨 짓을했는지
    2014-02-21 11:02:47.929 Hark[90819:303] Error loading /Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests: dlopen(/Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests, 262): Library not loaded: @rpath/OCMock.framework/Versions/A/OCMock 
        Referenced from: /Users/chancee/Library/Developer/Xcode/DerivedData/Hark-bsndafsdxydbivhhuuuyelepegkp/Build/Products/Debug/HarkTests.xctest/Contents/MacOS/HarkTests 
        Reason: image not found 
    

    Xcode에서 내 HarkTests 대상 "Link Binary With Libraries"에 OCMock을 추가했습니다. 그러나 사용 가능한 프레임 워크 목록에 표시되지 않지만 수동으로 탐색해야합니다. 이것은 나를위한 붉은 깃발을 일으키지 만, Xcode가 그것을 인식하지 못하는 이유를 알지 못합니다.

  3. 잘 컴파일합니다. 그러나 런타임에 위의 오류가 발생하므로 테스트를 실행하지 않습니다.

답변

3

컴파일 타임에 프레임 워크를 찾는 논리는 런타임에 프레임 워크를 찾는 논리와 다릅니다. OCMock은 @rpath 메커니즘을 사용합니다. 나는 /Library/Frameworks이 기본적으로 경로에 있다고 생각했을 것이다. 그럴 것 같지 않습니다. Runpath Search Paths 빌드 설정을 OCMock을 설치 한 디렉터리를 포함하도록 설정할 수 있습니다.

+0

감사합니다. 그거였다. 런타임 검색 경로에'/ Library/Frameworks'를 추가해야했습니다. 하지만 그게 그렇게 이상하네요. –