2013-04-08 74 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

相关问题