ATUALIZAÇÃO Swift 2.x, 3.x, 4.xe 5.x
Agora você não precisa adicionar public
os métodos aos testes para então. Nas versões mais recentes do Swift, é necessário apenas adicionar a @testable
palavra - chave.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
E seus métodos internos podem manter Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Observe que os símbolos private
(e fileprivate
) não estão disponíveis mesmo com o uso @testable
.
Swift 1.x
Existem dois conceitos relevantes da Swift aqui (como Xcode 6 beta 6).
- Você não precisa importar classes Swift, mas precisa importar módulos externos (destinos)
- O nível de controle de acesso padrão no Swift é
Internal access
Considerando que os testes estão em outro destino, PrimeNumberModelTests.swift
você precisa import
do destino que contém a classe que deseja testar, se o seu destino for chamado, MyProject
será necessário adicionar import MyProject
ao PrimeNumberModelTests
:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Mas isso não é suficiente para testar sua classe PrimeNumberModel
, já que o nível padrão de Controle de Acesso é que Internal Access
sua classe não estará visível para o pacote de teste, portanto, você precisa fazer isso Public Access
e todos os métodos que deseja testar:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}