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 public
cá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 @testable
từ 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.swift
mà bạn cần đến import
mụ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 MyProject
sẽ cần phải thêm import MyProject
và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 Access
và 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() {
}
}