Nsstring *path = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"txt"];
在应用程序中它运行正常,但当由单元测试框架运行pathForResource:返回nil,意味着它无法找到foo.txt。
我已经确保foo.txt包含在单元测试目标的复制捆绑资源构建阶段,所以为什么不能找到该文件?
解决方法 当单元测试包运行你的代码时,你的单元测试包不是主包。即使您正在运行测试,而不是您的应用程序,您的应用程序包仍然是主包。 (假设,这会阻止您测试的代码搜索错误的包。)因此,如果您将资源文件添加到单元测试包,则在搜索主包时找不到它。如果你替换上面的行:
NSBundle *bundle = [NSBundle bundleForClass:[self class]];Nsstring *path = [bundle pathForResource:@"foo" ofType:@"txt"];
然后你的代码将搜索你的单元测试类所在的包,一切都很好。
总结以上是内存溢出为你收集整理的可可 – 为什么不能在单元测试中找到bundle资源?全部内容,希望文章能够帮你解决可可 – 为什么不能在单元测试中找到bundle资源?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)