【에러 대처】【유메미 iOS 연수】Swift Unit Test -> Could not cast value of type 'xxx' to 'xxxTests'
시스템 엔지니어로서 일하고 있는 것 코드를 쓸 기회가 적기 때문에, 프라이빗으로 코드를 쓰는 습관을 익히고 싶다고 찾아낸 신인 육성용 커리큘럼.
세션8 에서의 테스트 코드 작성시에 이하의 에러로 망설였으므로 비망록으로서 기재합니다.
오류 로그
Could not cast value of type 'yumemi.ViewController' (0x108f463f8) to 'yumemiTests.ViewController'
테스트 코드에서
UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
에서 ViewController
를 생성하려고했지만 런타임에 오류가 발생합니다.로그의 내용적으로 Target의 호출처가 관계하고 있는 것 같다.
버전
도구
버전
Xcode
12.4
Swift
5
테스트 코드
ViewControllerTests.swift
import XCTest
@testable import yumemi
class ViewControllerTests: XCTestCase {
var viewController: ViewController!
override func setUpWithError() throws {
viewController = UIStoryboard(name: "Main", bundle: nil).instantiateInitialViewController()
_ = viewController.view
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
func testPerformanceExample() throws {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}
해결 방법
테스트 대상
ViewController
를 참조하면 Target Membership에 Test Target(이번에는 yumemiTests)이 포함되어 있었으므로, 체크를 해제하면 에러는 해소되어 테스트 코드로부터 ViewController를 참조할 수 있게 되었다.기타
해결한 것의 이유는 모르기 때문에, 아시는 분이 있으면 교수 받을 수 있으면 기쁩니다.
아직 깨끗하게 코드를 쓸 수 없지만 분투 중입니다.
yumemi 개인 연습용 리포지토리
Reference
이 문제에 관하여(【에러 대처】【유메미 iOS 연수】Swift Unit Test -> Could not cast value of type 'xxx' to 'xxxTests'), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/riku333/items/01904d3ba0780af2617b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)