UPDATE Swift 2.x, 3.x, 4.x und 5.x.
Jetzt müssen Sie die publiczu den zu testenden Methoden nicht mehr hinzufügen . In neueren Versionen von Swift muss nur das @testableSchlüsselwort hinzugefügt werden .
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Und Ihre internen Methoden können halten Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Beachten Sie, dass private(und fileprivate) Symbole auch bei Verwendung nicht verfügbar sind @testable.
Swift 1.x.
Hier gibt es zwei relevante Konzepte von Swift (As Xcode 6 Beta 6).
- Sie müssen keine Swift-Klassen importieren, aber Sie müssen externe Module (Ziele) importieren.
- Die Standard - Zugriffssteuerungsebene in Swift ist
Internal access
Bedenkt man, dass Prüfungen an einem anderen Ziel sind auf PrimeNumberModelTests.swiftSie müssen importdas Ziel, das die Klasse enthält , die Sie testen möchten, ob Ihr Ziel genannt wird MyProjecthinzufügen müssen , import MyProjectum die PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Dies reicht jedoch nicht aus, um Ihre Klasse zu testen PrimeNumberModel, da die Standardzugriffssteuerungsstufe lautet Internal Access, dass Ihre Klasse für das Testpaket nicht sichtbar ist. Daher müssen Sie sie Public Accessund alle Methoden erstellen, die Sie testen möchten:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}