xcode - 如何从我在 Swift 项目中的测试访问我的应用程序代码?

标签 xcode macos cocoa swift testing

我有一个 Swift Xcode 项目,代码如下:

class Utils: NSObject {
    class func cleanString (input: String, trim: Bool) -> String {
        // ...
    }
}

然后我尝试测试它:

import XCTest

class AppTests: XCTestCase {
    func testConfiguratio() {
        Utils.cleanString("foo", trim: true)
    }
}

但是我得到这个错误:

/Users/pupeno/Projects/macninja/AppTests/AppTests.swift:35:9: Use of unresolved identifier 'Utils'

我启用了主机应用程序 API:

enter image description here

我错过了什么?

最佳答案

如前所述,库代码和测试代码是两个不同的模块。因此,您必须将库导入测试代码,并将要测试的函数公开,例如:

public class Utils: NSObject {
    public class func cleanString (input: String, trim: Bool) -> String {
        // ...
    }
}

import XCTest
import Utils

class AppTests: XCTestCase {
    func testConfiguratio() {
        Utils.cleanString("foo", trim: true)
    }
}

如果您想查看工作代码,请查看 my IBANtools library project它实现了这个场景(类函数、swift 框架、大量测试)。

关于xcode - 如何从我在 Swift 项目中的测试访问我的应用程序代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192778/

相关文章:

macos - 为什么我有时会收到并发 NSURLSession 请求的错误回复

macos - Playground 中未声明的类型 'NSView'

ios - Xcode 中的设备配置栏上没有图标

ios - 代码 : Request to open App failed

macos - 我可以从终端快速搜索/替换多个 .txt 文件吗?

objective-c - 如何制作一个出现在全屏窗口顶部的 Cocoa 窗口?

macos - 如何在 Mac 上通过命令行编译 sfml 项目?

iPhone,sqlite3,如何检测空日期,分配给 NSString 时出错?

ios - 如何使用 Xcode 调试器打印出属性的内容?

cocoa - 基于 NSTableView 选择启用带有绑定(bind)的 NSButton