ACTUALIZACIÓN Swift 2.x, 3.x, 4.xy 5.x
Ahora no necesita agregar el public
a los métodos para probar entonces. En las versiones más recientes de Swift solo es necesario agregar la @testable
palabra 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.swift
que necesita import
el objetivo que contiene la clase que desea probar, si se llama a su objetivoMyProject
deberá agregar import MyProject
a 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 Access
su clase no será visible para el paquete de prueba, por lo que debe hacerlo Public Access
y todos los métodos que desea probar:
PrimeNumberModel.swift
import Foundation
public class PrimeNumberModel {
public init() {
}
}