MISE À JOUR Swift 2.x, 3.x, 4.x et 5.x
Vous n'avez plus besoin d'ajouter publicles méthodes à tester. Sur les versions plus récentes de Swift, il suffit d'ajouter le @testablemot - clé.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Et vos méthodes internes peuvent garder Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Notez que les symboles private(et fileprivate) ne sont pas disponibles même avec l'utilisation @testable.
Swift 1.x
Il y a deux concepts pertinents de Swift ici (comme Xcode 6 beta 6).
- Vous n'avez pas besoin d'importer des classes Swift, mais vous devez importer des modules externes (cibles)
- Le niveau de contrôle d'accès par défaut dans Swift est
Internal access
Étant donné que les tests sont sur une autre cible, PrimeNumberModelTests.swiftvous avez besoin de importla cible qui contient la classe que vous souhaitez tester, si votre cible est appelée MyProject, vous devrez ajouter import MyProjectau PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Mais cela ne suffit pas pour tester votre classe PrimeNumberModel, puisque le niveau de contrôle d'accès par défaut est Internal Access, votre classe ne sera pas visible pour le bundle de test, vous devez donc le créer Public Accesset toutes les méthodes que vous souhaitez tester:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}