UPDATE Swift 2.x, 3.x, 4.x ve 5.x
Şimdi publictest etmek için yöntemlere eklemenize gerek yok . Swift'in daha yeni sürümlerinde yalnızca @testableanahtar kelimeyi eklemek gerekir .
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Ve dahili yöntemleriniz Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Not private(ve fileprivate) sembolleri bile kullanarak mevcut değildir @testable.
Swift 1.x
Swift'ten burada ilgili iki kavram var (Xcode 6 beta 6 olarak).
- Swift sınıflarını içe aktarmanıza gerek yoktur, ancak harici modülleri (hedefleri) içe aktarmanız gerekir
- Swift'teki Varsayılan Erişim Denetimi düzeyi:
Internal access
Üzerinde testler başka hedefte olduklarını düşünürsek PrimeNumberModelTests.swiftGerekirse importsenin eğer, testin istediğiniz sınıfını içeren hedefin hedef denir MyProjecteklemeniz gerekir import MyProjectiçin PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Ancak bu, sınıfınızı test etmek için yeterli değildir PrimeNumberModel, çünkü varsayılan Erişim Kontrolü düzeyiInternal Access sınıfınız test paketi tarafından görülmeyecektir, bu nedenle onu Public Accessve test etmek istediğiniz tüm yöntemleri yapmanız gerekir :
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}