2013-04-08 101 views
2

要快速測試某些內容,我將測試文件添加到我的應用程序包中,並使用NSBundle:pathForResource將其加載到委託中。這工作。能夠從應用程序包中加載文件,但不能從測試應用程序包加載文件

但是現在我剛剛創建了一個Unit Testing類型的目標,並將該文件和代碼添加到這個新目標,但無法加載它。

我已經添加了文件,使用複製包資源測試目標,這是加載它的完整代碼:

NSBundle *mainBundle = [NSBundle mainBundle]; 
NSString *xmlFilePath = [mainBundle pathForResource:@"TestServerResponse" ofType:@"xml"]; 
STAssertNotNil(xmlFilePath, @"Unable to open file TestServerResponse.xml") 

我想不通爲什麼我可以加載它時,它是應用程序包目標的一部分,但現在我已將其移至不會加載的測試包。

回答

6

試試這個:

NSBundle *testBundle=[NSBundle bundleForClass:[self class]]; 
NSString *testBundlePath=[testBundle pathForResource:@"TestServerResponse" ofType:@"xml"]; 

對於測試的情況下,主束或您的應用程序是不是主束。

您需要自己訪問您的課程包。

+0

謝謝,這工作。這兩個呼叫之間的區別和原始呼叫在測試包中不起作用的原因是什麼? – Gruntcakes 2013-04-08 17:47:51

+0

主束和束自助類之間的差異。 :) – 2013-04-08 17:48:41

相關問題