1

我正试图将 Cocoapods 的魔力带到我的公司,但它遇到了一个小障碍。我们需要能够对来自 Cocoapods 的代码进行单元测试。

所以,我的问题是,是否有其他人在他们的公司中遇到过这种情况(或者是否有人偏执到足以关心对这段代码进行单元测试并弄清楚如何进行?)。这对我们来说可能不是一个交易破坏者,但如果我提前解决这个问题,它肯定会帮助管理工作顺利进行。

我们可能可以在客户端应用程序中插入测试,但考虑到我们将使用 pod 来减少手动工作,这需要大量的手动工作。以某种方式做一次就好了。

4

3 回答 3

3

在我的Podfile我使用这样的东西:link_with ['Sail', 'Sail-Tests']

这会将我的所有 Pod 与我的正常目标和测试目标链接起来。然后从我的测试中,我可以导入和测试我想要的任何东西。不过,这可能与“在客户端应用程序中插入测试”重叠。

于 2013-03-13T23:53:29.173 回答
1

如果您想使用类似于 Xcode 创建的设置(其中测试目标取决于被测对象),另一种选择是:

pod 'ObjectiveSugar', '~> 0.5'

target :test, :exclusive => true do
  pod 'OCMock', '~> 2.0.1'
end

将目标标记为独占表示它不应继承父项的依赖项。这可以防止此设置出现重复符号错误。

于 2013-03-14T09:36:50.893 回答
0

我使用 Cocoapods 来集中一整套 20 多个应用程序的核心功能,这些应用程序是同一个“基础”应用程序的白标版本。为此,我设置了两个 Xcode 项目的结构。

第一个包含核心功能,包括验证预期行为的单元测试(在我的例子中是 Kiwi)。规范以及 xcodeproj 没有出现在 podspec 中,但该项目在 CI (Jenkins) 下进行了测试。

第二个项目包含白标签应用程序(每个应用程序一个项目),它通过 Podfile 依赖于第一个项目设置。在这个轻量级应用程序中还有 Kiwi 规范,仅测试该特定应用程序的任何自定义代码。它不再测试核心类,因为它们已经被覆盖了。该项目也在CI下。

因此,对您的问题的主要回答是,您的库不仅包含依赖项目所需的源文件,还包含运行单元测试的编译 Xcode 项目(应用程序或库)。

于 2013-10-23T11:43:21.083 回答