【问题标题】:How do I test the final built product of an iOS static library, as opposed to it's constituent classes?如何测试 iOS 静态库的最终构建产品,而不是它的组成类?
【发布时间】:2011-01-31 22:20:51
【问题描述】:

我已经编写了一个静态库来在 iOS 项目之间重用一些代码,我们称之为MyLib

虽然MyLib 具有良好的单元测试覆盖率,但它会与外部资源进行大量交互,我想确保它在与实际应用程序的其他部分连接时正确运行。简而言之,除了单元测试目标之外,我还想在我的静态库中添加一个应用程序测试目标。那里没有戏剧。

在考虑一般设置时,我还想知道确保我的库的应用程序测试目标与实际的 libMyLib.a 二进制工件相关联是否不是一个好主意,从而将测试过程的该步骤作为好。

所以两个问题:

  1. 这还有必要吗?最终的libMyLib.a 二进制产品的行为与我的单元测试已经执行的一系列已编译.m 文件的行为是否存在任何重大风险? (可能的答案是,它可以防止在最终构建目标中意外排除其中一个 .m 文件)。

  2. 如何确定应用程序测试目标链接到libMyLib.a?这可以在构建设置中配置吗?是否需要任何自定义构建脚本?

如果这是常识,我提前为这个基本问题道歉,我正在慢慢加快构建过程、链接等一般情况,而不仅仅是使用 Apple 的 SDK 实现它的方式。

【问题讨论】:

    标签: testing ios integration-testing static-libraries static-linking


    【解决方案1】:

    这实际上很容易完成。在您的静态库的项目中:

    (假设 XCode 3)

    1. 创建一个新的应用程序目标。
    2. 在应用程序目标上“获取信息”以编辑其属性。
    3. 点击顶部的“常规”标签
    4. 单击“Direct Dependencies”窗格下的“+”按钮,添加您的静态库构建目标。这将在您构建新的应用程序目标之前构建静态库。
    5. 点击“链接库”窗格下的“+”按钮,添加 libMyLib.a(或您的库名称)

    您的项目现在应该链接到实际构建的工件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多