You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过导入其他脚本类测试Swift脚本?

如何在Swift脚本中导入其他脚本的类进行测试

当然可以!不过直接在测试脚本里用import ScriptA是行不通的——Swift脚本默认不支持这种文件级别的导入。不过我们可以通过将两个脚本一起编译运行的方式来实现,同时还要修正你测试代码里的几个小问题。

第一步:修正测试脚本的错误

你的测试代码有两处需要调整:

  1. convertNameIntoLowerCase是实例方法,不是类方法,必须先创建Main类的实例才能调用它;
  2. XCTAssertTrue的用法不对,比较字符串相等应该用XCTAssertEqual。

修正后的ScriptATests.swift如下:

#!/usr/bin/swift
import Foundation
import XCTest

class ATest : XCTestCase {
    func testIt() {
        // 创建Main类的实例
        let mainInstance = Main()
        // 使用XCTAssertEqual比较结果
        XCTAssertEqual(mainInstance.convertNameIntoLowerCase("SARAH"), "sarah")
    }
}

// 添加测试运行入口,让XCTest执行测试用例
XCTestSuite.default.run()

第二步:一起编译运行两个脚本

打开终端,运行以下命令,把ScriptA.swift和ScriptATests.swift作为参数传给swift命令:

swift ScriptA.swift ScriptATests.swift

这样Swift会把两个文件当作同一个项目的一部分编译,测试脚本就能直接访问Main类了。运行后你会看到XCTest的测试结果输出。

可选:更规范的脚本测试方式

如果你的脚本项目越来越大,也可以把ScriptA.swift打包成一个本地模块,然后在测试脚本里用@testable import导入,但对于小型脚本来说,上面的方法已经足够简单高效。

内容的提问来源于stack exchange,提问作者久美子

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:27:58