AKTUALIZACJA Swift 2.x, 3.x, 4.x i 5.x
Teraz nie musisz dodawać public
do metod testowania. W nowszych wersjach Swift konieczne jest jedynie dodanie @testable
słowa kluczowego.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
A twoje wewnętrzne metody mogą się utrzymać Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Pamiętaj, że symbole private
(i fileprivate
) nie są dostępne nawet przy użyciu @testable
.
Swift 1.x
Istnieją dwie istotne koncepcje ze Swift (As Xcode 6 beta 6).
- Nie musisz importować klas Swift, ale musisz zaimportować zewnętrzne moduły (cele)
- Domyślny poziom kontroli dostępu w Swift to
Internal access
Biorąc pod uwagę, że testy są na innym celu PrimeNumberModelTests.swift
, musisz do import
celu zawierającego klasę, którą chcesz przetestować, jeśli twój cel zostanie wywołany, MyProject
będziesz musiał dodać import MyProject
do PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Ale to nie wystarczy, aby przetestować swoją klasę PrimeNumberModel
, ponieważ domyślny poziom kontroli dostępu to Internal Access
, Twoja klasa nie będzie widoczna dla pakietu testowego, więc musisz to zrobić Public Access
i wszystkie metody, które chcesz przetestować:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}