2011-01-05 67 views
2

每當我運行單元測試應用程序查找的appdelegate是否有R值不要使用測試服單元測試我有以下錯誤

-(void)testAppDelegate 
{ 
id app_delegate=[[UIApplication sharedApplication]delegate]; 
STAssertNotNil(app_delegate,@"delegate not found"); 
} 

我得到這個錯誤。請幫忙。

「_OBJC_CLASS _ $ _ UIApplication的」,從引用:

objc-class-ref-to-UIApplication in Tests.o 

LD:符號(S)沒有發現

collect2:LD返回1退出狀態

+0

這是什麼樣的測試,你如何運行它? Apple的'邏輯測試'不在應用程序內運行,所以你不能從這樣的測試中調用'[UIApplication sharedApplication]'。 – Jonah 2011-01-05 04:57:39

+0

是的,它是一個「邏輯測試」,但我跟着蘋果的文檔步驟來創建這個和下載的樣本正在運行。我遵循Moszi的答案,現在我沒有得到那個錯誤。但是它顯示沒有找到appdelegate。 – Pradeep 2011-01-06 05:46:06

回答

3

我相信這是一個鏈接器錯誤,而不是運行時錯誤。 您需要將您在iPhone構建目標中使用的框架鏈接到單元測試目標。特別是這個錯誤表明UIKit框架沒有鏈接到你的單元測試目標。 (爲了安全地鏈接UIKit,Foundation和CoreGraphics以及您的目標)。

您可以通過擴大在Xcode中的目標節點做到這一點,你的單元測試目標獲取信息,並在常規選項卡,在您需要添加這3個框架的鏈接庫)

希望這幫助, Moszi

+0

感謝Moszi ..,現在它正在運行。 – Pradeep 2011-01-05 11:46:51

+0

謝謝你...現在我沒有得到那個錯誤,但仍然顯示沒有appdelegate被發現 – Pradeep 2011-01-06 05:48:47

+0

你能在哪裏顯示顯示沒有appdelegate的錯誤?如果是,請告訴解決方案 – Pria 2011-05-24 09:19:54