CẬP NHẬT Swift 2.x, 3.x, 4.x và 5.x
Bây giờ bạn không cần thêm publiccác phương thức để kiểm tra. Trên các phiên bản mới hơn của Swift, chỉ cần thêm @testabletừ khóa.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Và phương pháp nội bộ của bạn có thể giữ Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Lưu ý rằng các ký hiệu private(và fileprivate) không khả dụng ngay cả khi sử dụng @testable.
Swift 1.x
Có hai khái niệm liên quan từ Swift ở đây (Như Xcode 6 beta 6).
- Bạn không cần nhập các lớp Swift, nhưng bạn cần nhập các mô-đun (mục tiêu) bên ngoài
- Cấp độ Kiểm soát truy cập mặc định trong Swift là
Internal access
Xem xét rằng các bài kiểm tra nằm trên một mục tiêu khác PrimeNumberModelTests.swiftmà bạn cần đến importmục tiêu có chứa lớp mà bạn muốn kiểm tra, nếu mục tiêu của bạn được gọi MyProjectsẽ cần phải thêm import MyProjectvào PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Nhưng điều này là không đủ để kiểm tra lớp của bạn PrimeNumberModel, vì mức Kiểm soát truy cập mặc định là Internal Access, lớp của bạn sẽ không hiển thị với gói kiểm tra, vì vậy bạn cần phải thực hiện nó Public Accessvà tất cả các phương thức mà bạn muốn kiểm tra:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}