ОБНОВЛЕНИЕ 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
.
Swift 1.x
Здесь есть две важные концепции Swift (как 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() {
}
}
person
Diogo T
schedule
25.08.2014