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에는 두 가지 관련 개념이 있습니다 (Xcode 6 베타 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() {
}
}