【问题标题】:Unit testing with third party libraries and Carthage使用第三方库和 Carthage 进行单元测试
【发布时间】:2019-04-24 06:40:14
【问题描述】:

什么是使用 Carthage 进行依赖管理的正确方法,但也能够使用它为它引入的类型编写测试。例如,(这是假设的)如果我引入 AlamoFire 并假设它有一个响应协议和不同的具体类型符合响应协议。在我自己的图书馆里,如果我这样做的话

   @testable import AlamoFire 

它会抱怨模块“AlamoFire”没有被编译用于测试。做一些研究,我相信这是因为在发布版本上启用可测试性应该设置为 NO,Carthage 默认使用它。有没有办法在您的测试目标中使用这样的第三方类型?

【问题讨论】:

    标签: ios swift unit-testing carthage


    【解决方案1】:

    使用import 而不是@testable import 来访问模块的公共类型。

    同样在您的测试目标的构建阶段,将 AlamoFire 添加到“Link Binary With Libraries”

    【讨论】:

    • 当我这样做时,我得到`framework not found LibraryName for architecture x86_64。还有什么我需要做的吗?谢谢。
    • 是的,这已经完成了,因为我通过 Carthage 引入了依赖项并具有 Carthage README 中概述的运行脚本阶段。
    • 现在我们已经到达了我对迦太基知识的边缘。您是否在 Cartfile.private 文件中列出了 AlamoFire?
    • Cartfile.private 是一个附加文件,用于指定测试目标的依赖关系。请参阅github.com/Carthage/Carthage/issues/693 进行讨论
    • 是的。我不明白为什么有必要这样做的细微差别,但确实如此。
    猜你喜欢
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多