2017-11-15 1 views
0

UITest에서 (앱이 활성화되어있는 동안) 푸시 알림 수신을 테스트하고 싶습니다. 실시간 푸시 알림을 보낼 가진 고토 솔루션은 잔인한 같은 비트를 소리 (만 실제 장치에서 작동) : 내 질문은 http://www.pixeldock.com/blog/testing-push-notifications-with-xcode-uitests/UITest에서 푸시 알림 시뮬레이션

를 참조하십시오이 가능 (직접 또는 간접적으로)를 호출하기에서 UIAppicaltionDelegate의 didReceiveRemoteNotification (UI) XCTestCase?

+0

없는하지만 당신은 당신이 당신의 제안에 대한 자세한 정보를 제공 할 수있는 서버 –

+0

에 밖으로 구현에 푸시 알림을 보낼 수있는 몇 가지 소프트웨어를 사용할 수 있습니까? – cornr

+0

서버를 사용하여 테스트 푸시 알림을 보낼 수 있습니다. https://github.com/noodlewerk/NWPusher –

답변

0

UITest에서 앱 코드의 함수를 호출 할 수 없습니다. UITests는 별도의 프로세스에서 실행되며 앱의 기능 및 메소드에 액세스 할 수 없습니다. 애플의 문서에서

:

UI 테스트는 기본적인 방법으로 단위 테스트 다르다. 유닛 테스트 을 사용하면 앱 범위 내에서 작업 할 수 있으며 앱의 변수 및 상태에 대한 전체 액세스 권한을 사용하여 함수 및 메소드를 연습 할 수 있습니다. UI 테스트는 사용자의이 앱의 내부 메소드, 함수 및 변수에 액세스하지 못하는 것과 같은 방식으로 앱의 UI를 연습합니다. 이렇게하면 사용자가 사용자와 동일한 방식으로 테스트를 수행하여 사용자가 겪는 UI 문제가 노출됩니다.

직접 테스트에서 didReceiveRemoteNotification 호출하면 유닛 테스트 가능하다. 귀하의 앱이 푸시 알림을 처리하는 방법을 모르지만 유효한 대안이 될 수있는 단위 테스트로 원하는 결과를 테스트 할 수 있다면.

0

UITest 내에서 앱의 일정을 실행할 수 있습니다. 이전에 버튼을 제 견해에 놓았습니다 (제한 사항은 이벤트를 원한 모든보기에 단추를 추가해야한다는 것입니다).

UITesting 할 때 버튼을 추가하려면 setUp() 함수에서 launchArguments 배열에 요소를 추가하여 launchArguments를 전달하십시오. 응용 프로그램 내에서 액세스

launchArguments.append("push_notification_button")

:

if ProcessInfo.processInfo.arguments.contains("push_notification_button") { 
    // Add button 
} 
+0

이 코드는 작동하지만 테스트 코드가 마음에 들지 않습니다. – cornr