【问题标题】:How do I setup a Unit Test for Swift?如何为 Swift 设置单元测试?
【发布时间】:2014-11-25 12:17:15
【问题描述】:

我觉得尝试掌握单元测试/Swift 是谨慎的做法。
我查看了 WWDC 的 Objective-C 版本,并且非常了解 Objective-C 范例:导入单元测试所依赖的标头等。

单元测试不知道“fetchFlickrPhotoWithSearch()”。所以...

由于单元测试模块/目标超出了应用程序目标的范围,我假设我需要导入具有我希望测试的功能的特定 Swift 文件(类似于 Objective-C 的标头范例)。

但是编译器将此导入标记为“没有这样的模块......”

那么...如何使我的 Swift API 可用于单元测试?

【问题讨论】:

    标签: unit-testing swift


    【解决方案1】:

    Steve Rosenberg 推荐的解决方案是一个简单的解决方案,但会导致难以调试的问题(如果您有兴趣,可以在 here 记录一个实例)。

    推荐的方法是编辑您的应用程序目标(不是测试目标)的构建设置并将打包下的“定义模块”设置为YES

    完成后,在您的测试目标中,在每个 .swift 文件的顶部,导入您的项目主模块以访问您的类、结构等。主模块的名称通常与您的名称相同Xcode 项目文件。

    注意:当采用这种方法时,您必须使用公共访问控制修饰符来注释所有要测试的类/结构/枚举方法。

    【讨论】:

      【解决方案2】:

      这里有个好听的:

      http://natashatherobot.com/swift-unit-testing-tips-and-tricks/

      确保您要测试的类文件在实用程序面板的文件身份检查器中检查了它的目标成员资格。这是我第一次发现。

      【讨论】:

      • 我注意到默认(或偶然)所需的 .swift 文件也包含在测试目标中。缺少的是我希望测试的特定功能的 PUBLIC 限定符。我不需要 '#import...' 语句。 有效!
      猜你喜欢
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2014-03-02
      • 2017-08-31
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多