繁体   English   中英

在Objective-C中访问资产目录以进行单元测试

[英]Access an asset catalog for unit tests in Objective-C

我有一个用Objective-C编写的CocoaPods项目,我想对它进行单元测试。 有问题的项目适用于图像,因此我需要向其提供一些图像以进行测试。 在任何情况下,这些图像都不会在发行版本中使用-因此,主要目标不需要访问它们。

我首先创建资产文件并将其与测试目标相关联:

在此处输入图片说明

在资产文件中,我为第一个测试图像创建了一个条目:

在此处输入图片说明

我还验证了资产文件已被复制到测试对象项目阶段标签下的捆绑资源中:

在此处输入图片说明

然后,在我的单元测试中,我称之为:

- (void)testLoadImage {
    UIImage *image = [UIImage imageNamed:@"colortestpattern"];
    XCTAssertNotNil(image);
}

测试失败,因为未设置图像。

因为我需要大量的图像进行测试,所以我希望使用资产文件。 但是,如果这不可能,那么我愿意接受替代方案。

您是否尝试过UIImage的类方法imageNamed:inBundle:compatibleWithTraitCollection:

UIImage *image = [UIImage imageNamed: @"colortestpattern"
                            inBundle: [NSBundle bundleForClass: [self class]]
       compatibleWithTraitCollection: nil];

该映像应位于单元测试包中,而不是主包中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM