我无法获得依赖于使用imageNamed
工作的代码的Cocoa Touch静态库的XCTestCase单元测试。
我将我的图片“plane.png”添加到了测试目标,但是[UIImage imageNamed]
一直没有返回。
当我在测试中明确指定图像的路径并从文件加载图像时,它确实有效。
NSString* imagePath = [[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"plane.png"];
UIImage* imageWorks = [UIImage imageWithContentsOfFile:imagePath];
UIImage* imageStaysNil = [UIImage imageNamed:@"plane.png"];
如何为使用imageNamed
?
答案 0 :(得分:17)
在XCTest中,您不在mainBundle中。所以从你的XCTest包中获取你的图像。
(此解决方案适用于iOS8 +)
MetaTrader Terminal 5
[UIImage imageNamed:@"..." inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
答案 1 :(得分:1)
由于您的xctest项目的行为与其他项目不同,因此也必须为xctest添加.png文件。
将你的plane.png图片添加到xctest项目中。 确保你已经检查过像
使用相同的代码
对我来说很好
答案 2 :(得分:0)
被接受的答案对我不起作用;这是做什么的。
let image = UIImage(contentsOfFile:
Bundle(for: type(of: self))
.path(forResource: "plane", ofType: "png")!)!