UPDATE Swift 2.x, 3.x, 4.x dan 5.x
Sekarang Anda tidak perlu menambahkan public
metode untuk menguji itu. Pada versi Swift yang lebih baru, hanya perlu menambahkan @testable
kata kunci.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Dan metode internal Anda dapat dipertahankan Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Perhatikan bahwa private
(dan fileprivate
) simbol tidak tersedia bahkan dengan menggunakan @testable
.
Swift 1.x
Ada dua konsep yang relevan dari Swift di sini (As Xcode 6 beta 6).
- Anda tidak perlu mengimpor kelas Swift, tetapi Anda perlu mengimpor modul eksternal (target)
- Level Kontrol Akses Default di Swift adalah
Internal access
Mempertimbangkan bahwa tes berada pada target lain pada PrimeNumberModelTests.swift
Anda perlu import
target yang berisi kelas yang ingin Anda uji, jika target Anda dipanggil MyProject
perlu menambahkan import MyProject
ke PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Tetapi ini tidak cukup untuk menguji kelas Anda PrimeNumberModel
, karena tingkat Kontrol Akses default adalah Internal Access
, kelas Anda tidak akan terlihat oleh bundel tes, jadi Anda perlu membuatnya Public Access
dan semua metode yang ingin Anda uji:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}