ОНОВЛЕННЯ Swift 2.x, 3.x, 4.x і 5.x
Тепер вам не потрібно додавати public
методи до тестування. У новіших версіях Swift потрібно лише додати @testable
ключове слово.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
І ваші внутрішні методи можуть зберегти Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Зауважте, що символи private
(та fileprivate
) недоступні навіть при використанні @testable
.
Швидкий 1.x
Тут є дві відповідні концепції Swift (As Xcode 6 beta 6).
- Вам не потрібно імпортувати класи Swift, але вам потрібно імпортувати зовнішні модулі (цілі)
- Рівень контролю доступу за замовчуванням у Swift становить
Internal access
Зважаючи на те, що тести перебувають на іншій цілі, PrimeNumberModelTests.swift
вам потрібно досягти import
цілі, яка містить клас, який ви хочете перевірити, якщо ваша ціль викликається MyProject
, потрібно буде додати import MyProject
до PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Але цього недостатньо для тестування вашого класу PrimeNumberModel
, оскільки рівень контролю доступу за замовчуванням є Internal Access
, ваш клас не буде видно тестовим пакетом, тому вам потрібно зробити його Public Access
та всі методи, які ви хочете перевірити:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}