2010-07-08 86 views
3

我有OCMock(1.55)和XCode 3.2.3的最新版本。適用於iPhone的iOS模擬器(iOS4,XCode 3.2.3)

我在我的項目中創建了一個測試包目標。 在我的測試中使用OCMock的最佳方式是什麼? 當我添加OCMock.framework的測試包,出現此生成錯誤:

"_OBJC_CLASS_$_OCMockObject", referenced from: 
    objc-class-ref-to-OCMockObject in NotificationTests.o 
    ld: symbol(s) not found 
    collect2: ld returned 1 exit status 
+0

我也有這個問題 – nduplessis 2010-07-22 11:22:05

回答

4

我有同樣的問題,這是我如何解決它:

  • 刪除ocmock.framework,拷貝文件階段,並鏈接到ocmock標題任何搜索路徑。

  • 簽出ocmock svn的最新版本:http://svn.mulle-kybernetik.com/OCMock/trunk

  • 構建OCMockPhoneSim目標

  • 拷貝到您的項目文件夾

  • 的libOCMock.a和頭文件夾添加libOCMock .a添加到您的框架,並添加一個鏈接到目標庫搜索路徑中的頭文件夾。

然後它工作!

希望這會有所幫助。

0

user3135374的回答主要幫助我得到這個。

附加信息:

  • 的SDK必須是iPhone模擬器4.0 3.2,因爲有這使得它無法正常運行單元測試的錯誤。很多人都在抱怨。我將其設置爲我的單元測試目標的BaseSDK。

  • 您需要將其他鏈接器標誌「-ObjC -force_load $(PROJECT_DIR)/path/to/libOCMock.a」添加到您的單元測試目標中,否則您將獲得大量運行時「無法識別的選擇器發送到實例「錯誤

  • 如果你想有單元測試的目標實際上你可以調試(設置斷點)本教程: http://www.lostechies.com/blogs/scottdensmore/archive/2010/07/24/debugging-unit-tests-for-the-iphone-ipad.aspx

此線程上OCMock論壇上,你可以用一個例子項目:

http://www.mulle-kybernetik.com/forum/viewtopic.php?f=4&t=73&p=119#p119