首页 > 解决方案 > 如何使用 CocoaPods 分发测试替身?

问题描述

我正在创建一个定义 Swift 协议的 pod,以及该协议的几个实现。

在使用我的 pod 时,我还想分发一个测试替身(即模拟、存根、间谍等)协议的实现,供项目在他们的测试中使用。

我可以将我的 pod 配置为仅在使用我的 pod 的项目的测试目标中包含我的测试双源文件吗?

标签: iosswiftxcodeunit-testingcocoapods

解决方案


您可以使用子规范default_subspec为您的客户进行设置。

Pod::Spec.new do |spec|
  spec.name = "MyPod"
  spec.default_subspec = 'Library'

  spec.subspec "Library" do |subspec|
    subspec.source_files = "src/*.swift"
    // ... other cocoapods configuration commands
  end
  spec.subspec "TestDoubles" do |subspec|
    subspec.source_files = "testdoubles/*.swift"
    // ... other cocoapods configuration commands
  end
end

要在客户的 Podfile 中导入库,他们仍然可以使用以下语法:

pod 'MyPod'

要导入测试替身,他们可以使用以下语法:

pod 'MyPod/TestDoubles'

推荐阅读