ios – 如何在XCTest上使用静态库(例如cocoapods库)?

前端之家收集整理的这篇文章主要介绍了ios – 如何在XCTest上使用静态库(例如cocoapods库)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Core Data,当我的模型变得更复杂时,我需要确保我引入的新更改不会在其他部分意外地破坏我的模型.

我可以创建单元测试并在每次更改模型上的内容时运行它们.如果出现问题,我的模型可能有问题,或者至少我知道我必须在主代码/测试中修改一些查询.

我正在使用MagicalRecord来访问一些方便的方法.
我也因为同样的原因使用cocoapods,方便.
问题是cocoapods创建了一个静态库并将其链接到我的目标,但是在Xcode中,新的测试目标不会自动配置为链接到相关目标链接的相同库/框架.

如何对静态库进行XCTest链接

这不仅有助于MagicalRecord / Core Data,但是当您使用外部库时,最好进行测试以确保库上的更新不会破坏您的应用程序.

解决方法

如果您正在使用cocoapods,您只需使用 link_with来包含您的测试目标,但如果您使用的是非cocoapods创建的静态库,则可以执行以下操作:

(我仍然会使用cocoapods库来获取指令,因为这正是我正在使用的,但如果您不使用cocoapods库,那么这个想法是一样的)

创建新的测试目标后,单击项目导航器中的项目根节点,然后选择测试目标.
转到“构建设置”并搜索标题搜索路径”.双击“页眉搜索路径”项,然后输入
${SRCROOT} / Pods / Headers,如果要导入所有cocoapods库标题或单独输入,请选择递归:
${SRCROOT} / Pods / Headers / MagicalRecord选择非递归(尽管在这种情况下它并不重要).

现在搜索链接和其他链接器标志添加-ObjC

现在仍然选择了测试目标,转到Build Phases并在Link Binary With Libraries中单击并单独添加libPods.a或其他库(libPods-MagicalRecord.a)

您应该能够使用静态库运行XCTest.

可选:我想导入我知道我将在-Prefix.pch文件中使用的标头.您可以在Project Navigator中转到目标测试组.转到Supporting Files组并打开-Prefix.pch文件.对于MagicalRecord,我想添加

#define MR_SHORTHAND
#import "CoreData+MagicalRecord.h"

欲获得更多信息:

> Unit Testing with Core Data
> Creating a Static Library in iOS Tutorial

猜你在找的iOS相关文章