MISE À JOUR Swift 2.x, 3.x, 4.x et 5.x
Vous n'avez plus besoin d'ajouter public
les méthodes à tester. Sur les versions plus récentes de Swift, il suffit d'ajouter le @testable
mot - 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.swift
vous avez besoin de import
la cible qui contient la classe que vous souhaitez tester, si votre cible est appelée MyProject
, vous devrez ajouter import MyProject
au 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 Access
et toutes les méthodes que vous souhaitez tester:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}