ACTUALIZACIÓN Swift 2.x, 3.x, 4.xy 5.x
Ahora no necesita agregar el publica los métodos para probar entonces. En las versiones más recientes de Swift solo es necesario agregar la @testablepalabra clave.
PrimeNumberModelTests.swift
import XCTest
@testable import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Y sus métodos internos pueden mantener Internal
PrimeNumberModel.swift
import Foundation
class PrimeNumberModel {
init() {
}
}
Tenga en cuenta que private(y fileprivate) los símbolos no están disponibles incluso con el uso @testable.
Swift 1.x
Aquí hay dos conceptos relevantes de Swift (como Xcode 6 beta 6).
- No necesita importar clases Swift, pero necesita importar módulos externos (objetivos)
- El nivel de control de acceso predeterminado en Swift es
Internal access
Teniendo en cuenta que las pruebas están en otro objetivo en el PrimeNumberModelTests.swiftque necesita importel objetivo que contiene la clase que desea probar, si se llama a su objetivoMyProject deberá agregar import MyProjecta PrimeNumberModelTests:
PrimeNumberModelTests.swift
import XCTest
import MyProject
class PrimeNumberModelTests: XCTestCase {
let testObject = PrimeNumberModel()
}
Pero esto no es suficiente para probar su clase PrimeNumberModel, ya que el nivel de control de acceso predeterminado es que Internal Accesssu clase no será visible para el paquete de prueba, por lo que debe hacerlo Public Accessy todos los métodos que desea probar:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}