질문하기 전에이 말을해야합니다. 엑스 코드에서 UI 테스트에 대한 나의 이해 :XCTest의 UI 대상에서 주 대상의 메서드를 호출하는 방법은 무엇입니까?
- UI 테스트는 단지 UI 작업은
- 은 원래 소스는 최종 사용자가 액세스 할 수없는 흐름 자동화를위한 것입니다. 마찬가지로, UI 테스트는 앱의 소스 코드에 액세스 할 수 없습니다.
- UI 테스트 케이스 내에서 요소 속성/식별자 만 액세스 할 수 있습니다.
내 시나리오 :
내 UI 테스트 케이스에서 내 소스 코드 (말 MyVC.h/MyVC.m
를) 뷰 컨트롤러 (myMethod()
말) 메서드를 호출합니다.
참고 : 내 소스 코드는 Objective C로 작성되었으며, Swift에 테스트 케이스를 작성하고 있습니다.
제 생각에 UITest 타겟에서도 MyVC.m
(대상에 .h를 추가 할 수 없음)을 추가해야합니다. 그렇다면 내 UITest 브리징 파일에 MyVC.h
을 가져와야합니다. 그리고이 같은 UITest에서 myMethod()
를 호출 할 수
MyVC.myMethod()
그것은 작동합니다!
문제 : 실시간으로
, 클래스의 대부분은 등을 백분율 클래스, 상수 파일 (헤더 파일), .PCH 파일 공유 관리자에서 가져온 클래스,
를 사용 MyVC
이 위와 같은 수업을 사용하지 않는 독립 수업 인 경우 myMethod()
에 아무런 문제없이 액세스 할 수 있습니다.
그러나 간접적으로 MyVC
이 클래스를 사용하면 UITest를 실행하면 모든 소스 코드에서 누락 된 헤더 파일 오류가 표시됩니다.
내가 뭘하려 :
- 이 문제를 해결하려면, 나는 UI 대상으로 모든 소스 파일을 추가하여 테스트했습니다. 아직도 그 문제가 발생합니다. 이후 나는 .h 파일을 추가 할 수 없다.
- 나는 어떤 클래스의 메소드를 호출 할 수있는 유닛 테스트 클래스를 만들었다. (유닛 테스트 클래스는 "호스트 어플리케이션 API 테스트 허용"옵션을 가지고 있기 때문에). 그런 다음 UI 테스트 케이스에서 Unit 테스트 케이스에 액세스하려고했습니다. 여기에도 각 파일에서 동일한 오류가 발생합니다.
질문 :
내가 필요한 모든 파일이 주요 소스의 모든 파일에 헤더를 추가해야합니까?
누구나 이런 유형의 오류가 발생 했습니까? 누구나 UI 테스트에서 DB 액세스를 했습니까?
http://stackoverflow.com/questions/34771278/xcode7-uitesting- main-target-classes-to-be-available-from -uituscas? rq = 1 – Shahid
UI 테스트에서 앱 코드에 액세스하고 싶습니다. 테스트 시나리오는 무엇입니까? –