能够从应用程序包加载文件,但不能从测试应用程序包加载文件

时间:2013-04-08 17:39:39

标签: iphone ios unit-testing nsbundle

为了快速测试一些内容,我将测试文件添加到我的应用程序包中,并使用NSBundle:pathForResource将其加载到委托中。这很有用。

但是现在我刚刚创建了一个单元测试类型的目标,并将文件和代码添加到这个新目标但是无法加载它。

我已使用Copy Bundle Resources将文件添加到测试目标,这是加载它的完整代码:

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

我无法弄清楚为什么我可以加载它当它是应用程序包目标的一部分,但现在我已将它移动到它将无法加载的测试包。

1 个答案:

答案 0 :(得分:6)

试试这个:

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

对于测试用例,主包或您的应用程序不是主要包。

您需要自己为班级访问捆绑包。