4
난 내의 신속한 프로젝트에 단위 테스트를 추가하는 데 문제가 있습니다, 그래서 난 내 클래스의 제거 다운 버전의 새로운 엑스 코드 테스트 프로젝트를 생성 :스위프트에서 단위 테스트를 어떻게 설정합니까?
다음class SimpleClass {
let x: String
init(x: String) {
self.x = x
}
convenience init(dict: Dictionary<String, String>) {
self.init(x: dict["x"]!)
}
}
나는 간단한 테스트 케이스를 만들어 :
import XCTest
import TestProblem
class TestProblemTests: XCTestCase {
func testExample() {
// This is an example of a functional test case.
XCTAssertEqual(SimpleClass(x: "foo"), SimpleClass(dict: ["x": "foo"]))
}
}
나는
SimpleClass
에 대한 해결되지 않은 식별자 오류를 수정하기 위해 프로젝트 자체 (
import TestProblem
)를 가져올 수 있었다.
내가 테스트를 실행하려고 할 때, 나는 다음과 같은받을 컴파일러 오류 : 나는 무슨
Could not find an overload for 'init' that accepts the supplied arguments
를 놓친 거지? init에 대한 호출은 테스트 파일 내에서도 XCTAssertEqual
호출 외부에서 올바르게 작동합니다.
, 나는 또한 시도 :
이Cannot convert the expression's type 'Void' to type 'SimpleClass'
흠, 문제가 해결됩니다. 명시 적 주석이 필요한 이유가 궁금합니다. – Bill
일반적으로 명시 적 주석 없이는 작업해야합니다. 그것은 나를 위해 버그처럼 보이므로 사과에 신고 할 수 있습니다. Xcode는 아직 베타 2 버전이기 때문에 아직 완벽하지는 않습니다. – jaumard
빠른 답변을 보내 주셔서 감사합니다. 문제를 알려 드리겠습니다. – Bill