更新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()
}
但这还不足以测试您的类PrimeNumberModel
,因为默认的访问控制级别是Internal Access
,您的类对测试包是不可见的,因此您需要制作它Public Access
以及要测试的所有方法:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}