2016-10-13 5 views

답변

0

아니요. 표시되지 않습니다.

@testable은 "내부"기능에만 액세스를 제공합니다. @testable을 사용하는 경우에도 "private" 선언이 파일 외부에 표시되지 않습니다.

+0

죄송합니다. 잘못된 단어를 사용했습니다. 내 말은 "개인 API"가 아닌 "개인용 메소드"입니다. – hoangpx

+0

예. 그렇지만 개인용 API를 사용하여 앱을 게시하면 Apple에서 거부됩니다. –

+0

저는 UI 테스팅에있는 것들만 사용하고 app의 소스 코드에는 사용하지 않습니다. 그래서 문제는 애플 리케이션의 소스 코드와 함께 UI 테스트의 코드 또는 리소스가 애플에 제출되어 리뷰 될 것인가? – hoangpx

2

나를 위해, 이것은 애플의 네이티브 UI 테스트 패키지에 큰 불이익을 안겨줍니다. 단위 테스트 패키지 위에 UI를 테스트하고 UI 패키지를 모두 피할 수있게 해주는 타사 패키지가 너무 많기 때문에 이것은 iOS에서 큰 문제는 아닙니다. 이것은 똑같은 지원이없는 tvOS 또는 macOS 프로젝트에서 작업하는 경우에는 적지 않습니다. tvOS는 현재 UI 테스팅을위한 많은 방법으로 깨져 있습니다.

결국 UI 테스트를 사용하여 응용 프로그램을 실제로 테스트하려면 기본적으로 제대로 작동하도록 훨씬 더 많은 작업을 수행해야합니다. 대부분의 답변은 -launchEnvironment 또는 -launchArguments을 사용하여 앱에서 UI 테스트를 실행하는 데 필요한 모든 데이터를 전달한다고 알려줍니다. 나는 이것이 효과가 있다고 말할 수 있지만,이 작업을 효과적으로 수행하기 위해 얼마나 많은 추가 작업이 필요한지 알려주지 못합니다. UI 테스트 용 모킹 또는 스터 빙은 프로덕션 코드를 사용해야합니다. 에서처럼 실행 인수 및 환경 변수에 대한 논리를 포함하고 런타임에 응용 프로그램을 변경해야합니다. 당신이 나에게 묻는다면 엄청난 접근법이 아니라, 끝낼 수 있습니다.

결국 UI 테스트를 실행하고 응용 프로그램의 더 큰 부분을 보호 할 수 있도록 약간의 프로덕션 코드를 희생했습니다. 필요한 데이터를 호출하기 위해 자체 네트워킹 라이브러리를 구축했기 때문에 네트워크 요청에 대한 "테스트"경로를 프로그래밍하여 API 호출에 필요한 데이터를 반환 할 수있었습니다. 기본적으로 사용자의 사용자 정의 파일 이름과 url의 해시 및 네트워크 라이브러리가 해당 API의 특정 페이로드를 반환하도록하는 매개 변수 일단 작동하면 좋았습니다. 나는 아직도 조금 더러운 느낌이지만 작동하지 않습니다.

시행 착오를 거치지 않아 UI 테스트에서 데이터를 모의하거나 스텁할 수 없습니다. 결국, 테스트 데이터를 앱에 프로그래밍하고 실행 인수를 사용하는 것으로 나타났습니다. WWDC 17 손가락이 더 좋은 소식을 전할 것입니다.

+0

예, 스텁 및 조롱을 사용하여 앱 실행시 액세스 할 수 있습니다. UI 테스트의 버그와 한계가 너무 많습니다. 그러나 이것은 현재 자동화 테스트를위한 최상의 도구이며 곧 더 나을 것으로 확신합니다. – hoangpx

+0

Apple의 UI 테스트를 사용하여 메소드를 모방하고 스텁하는 방법을 알고 싶습니다. 필자가 보았고 읽은 모든 것은 이것이 앱 자체를 조롱하는 것 없이는 가능하지 않다는 것을 나타냅니다. 앱 자체를 조롱하는 것이 아니라면 내 작업에 맞게 작동해야합니다. –

관련 문제