먼저 문제를 설명해 드리겠습니다.XC UI 테스트 용 스텁 데이터
내 웹 서버 데이터를 중계하고 싶지 않습니다. 내 XCUITests에 대한 데이터를 스텁하고 싶습니다. 그래서 정확한 데이터를 100 % 반환하고 때로는 특정 오류 (예 : 오류 또는 빈 상태)를 테스트해야 할 때도 있습니다. 웹 서버가 그 순간 정확하게 반환하지 않을 수 있습니다. 그래서, 내가 뭘 시도했는지, 내 XCUITest에서 로컬 server을 실행 한 다음 일부 요청을 스터핑하는 것이지만 XC UI 테스트가 별도의 개별 번들 (심지어는 별도의 프로세스)에서 실행되고 로컬 서버를 localhost에 바인드 할 수 없으므로 내 메인 앱 번들을이 서버에 연결할 수 없습니다.
내가 시도한 또 다른 솔루션은 XCUIApplication(). launchArguments를 통해 일부 매개 변수를 전달하고 기본 app의 params-run 스텁을 기반으로하지만 다음과 같은 문제가 있습니다. "문제가 있습니다. -proxy server in main app ", UI 테스트에만 필요합니다.
나는 스텁 서버를 만들어 웹에 노출 할 수 있기 때문에 UI 테스팅을위한 개발 환경을 만들 수 있지만 극단적 인 것으로 보인다. 이 경우 프로젝트의 UI 테스트 만 유지하는 것이 큰 노력입니다.
내 질문은 누구든지 더 나은 해결책이 있습니까? 주 앱을 수정하거나 외부 웹 서버를 실행하지 않고이 문제를 해결할 수있는 방법이 있습니까?
소수의 클래스와 확장을 사용하여 쉽게 수행 할 수있는 방법에 대한 블로그 게시물을 작성했습니다. https://developer.soundcloud.com/blog/automatic-stubbing-of-network-requests-to-de-flakify-automation-testing – Remover