【发布时间】:2014-08-27 21:02:39
【问题描述】:
我已将 Cocoa Touch Unit Testing Bundle 类型的新目标添加到现有 iOS 项目、测试用例和一些我需要测试的 jpg 文件。
我正在尝试使用以下代码从测试包中加载图像:
@implementation PhotosViewController_Tests : XCTestCase
-(void)addImage:(NSString *)imageName
{
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *imagePath = [bundle pathForResource:imageName ofType:@"jpg"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
...
}
但是,bundle 返回主包,而不是测试包,并且 imagePath 和 image 为 nil。
我可以成功地从主包加载图像(使用此代码),但我不明白为什么 bundleForClass 返回 mainBundle 而不是单元测试。
我打印了[NSBundle allBundles],我也得到了主包:
"NSBundle </var/mobile/Applications/uuid/Photos Light.app> (loaded)"
我猜这与创建项目后添加单元测试目标有关,但我不知道还有什么可以从测试包中加载图像。
【问题讨论】:
标签: ios objective-c xcode unit-testing nsbundle