更新 Swift 2.x、3.x、4.x 和 5.x
现在您不需要添加public
到方法中进行测试。在较新版本的 Swift 上,只需要添加@testable
关键字。
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
而你的内部方法可以保持Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
请注意,即使使用private
( 和fileprivate
) 符号也不可用@testable
。
斯威夫特 1.x
这里有两个来自 Swift 的相关概念(作为 Xcode 6 beta 6)。
- 您不需要导入 Swift 类,但需要导入外部模块(目标)
- Swift 中的默认访问控制级别是
Internal access
考虑到测试在另一个目标上,PrimeNumberModelTests.swift
您需要import
包含要测试的类的目标,如果您的目标被调用,MyProject
则需要添加import MyProject
到PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
但这还不足以测试你的 class PrimeNumberModel
,因为默认的访问控制级别是Internal Access
,你的 class 对测试包不可见,所以你需要让它Public Access
和你想要测试的所有方法:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}