AGGIORNAMENTO Swift 2.x, 3.x, 4.xe 5.x
Ora non è necessario aggiungere public
i metodi ai test da testare. Nelle versioni più recenti di Swift è necessario solo aggiungere la @testable
parola chiave.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
E i tuoi metodi interni possono mantenere Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Si noti che i simboli private
(e fileprivate
) non sono disponibili anche con l'utilizzo @testable
.
Swift 1.x
Qui ci sono due concetti rilevanti di Swift (come Xcode 6 beta 6).
- Non è necessario importare classi Swift, ma è necessario importare moduli esterni (destinazioni)
- Il livello di controllo di accesso predefinito in Swift è
Internal access
Considerando che i test sono su un altro target, PrimeNumberModelTests.swift
è necessario import
il target che contiene la classe che si desidera testare, se il target viene chiamato MyProject
sarà necessario aggiungere import MyProject
a PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Ma questo non è abbastanza per testare la tua classe PrimeNumberModel
, dal momento che il livello di controllo di accesso predefinito è Internal Access
, la tua classe non sarà visibile al bundle di test, quindi devi farlo Public Access
e tutti i metodi che vuoi testare:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}