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() {
}
}