UPDATE Swift 2.x, 3.x, 4.x und 5.x.
Jetzt müssen Sie die public
zu den zu testenden Methoden nicht mehr hinzufügen . In neueren Versionen von Swift muss nur das @testable
Schlü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.swift
Sie müssen import
das Ziel, das die Klasse enthält , die Sie testen möchten, ob Ihr Ziel genannt wird MyProject
hinzufügen müssen , import MyProject
um 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 Access
und alle Methoden erstellen, die Sie testen möchten:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}