更新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() {
}
}
请注意,即使使用 @testable
,private
(和 fileprivate
)符号也不可用。
Swift 1.x
在 Swift 中有两个相关概念(截至 Xcode 6 beta 6):
- 您不需要导入 Swift 类,但需要导入外部模块(目标)
- Swift 中默认的访问控制级别是
Internal access
考虑到测试位于 PrimeNumberModelTests.swift
的另一个目标上,如果您的目标称为 MyProject
,则需要在 PrimeNumberModelTests
中添加 import MyProject
来导入
包含要测试的类的目标:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
但这还不足以测试你的类PrimeNumberModel
,因为默认的访问控制级别是Internal Access
,你的类对于测试包将不可见,所以你需要将其改为Public Access
,并且所有想要测试的方法也需要如此。
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}