2016-07-15 1 views
0

저는 xamarin app에 대한 테스트 케이스를 작성하고 있습니다. 현재 MapBox를 사용하는 Xamarin 프로젝트에서 작업 중입니다. 나는지도 위에있는 핀을 두드리는 것을 시험 할 수 있어야한다. Xamarin.UITest를 사용하면 TapCoordinates (x, y)를 사용할 수 있지만 작동하지 않습니다. 오버레이를 팝업하는 핀이 필요합니다. iOS 시뮬레이터를 클릭하면 잘됩니다. TapCoordinates()는 어떻게 다른가요?Xamarin.UITest를 사용하여지도에서 핀을 탭하여 클릭 여부를 테스트 할 수 있습니까?

답변

0

TapCoordinates는 NUnit의 일부가 아닙니다. 그것은 Xamarin.UiTest의 일부입니다. 아무것도 테스트하지 않습니다. 은 앱과 함께입니다. 특히 특정 위치에서 사용자가 탭하는 것을 시뮬레이트합니다.

NUnit으로 무언가를 테스트하고 싶다면 대개 핀을 두드려서 결과가 나올 것으로 예상되는 것이 무엇이든지 테스트 할 것입니다.

많은 사람들이 NUnit 어설 션없이 UI 테스트를 작성하는 것으로 보입니다. 예외가 발생하지 않으면 테스트가 통과한다고 생각합니다.

테스트 할 항목, 즉 도청의 결과로 수행 할 작업을 지정하면 더 나은 답변을 얻을 수 있습니다.

+0

내 질문을 더 잘 표현했다. 나는 NUnit과 Xamarin.UiTest를 모두 사용하고있다. 나는 핀을 두드려서 UI가 팝업을 표시하도록하고 싶습니다. 차례로, 시뮬레이션하고 싶습니다. 다양한 기기에 대한 UI 테스트를 자동화해야합니다. – ArbiterUnknown

+0

Xamarin UiTest에 대한 지식이있는 사람이 대답해야하지만 탭하면 특정 이벤트가 생성되었는지 확인하려는 것처럼 들립니다. 일반적으로 이벤트 생성과 처리 방법은 항상 테스트합니다. – Charlie

+0

핀을 탭하려고 시도하는 것에서 백도어 호출로 핀을 탭할 때 호출해야하는 메소드를 호출하는 것으로 변경되었습니다. https://developer.xamarin.com/guides/testcloud/uitest/working -with/backdoors/ 내 응용 프로그램이 백도어 메소드에 도달하면 충돌합니다. – ArbiterUnknown

0

그래서 Android 기본 활동 및 iOS 앱 대리인에 백도어 메소드를 만들어야했습니다. 그럼 난 핀은 다음 코드와 비슷한 도청 도착 때 불려 가도록 같은 방법으로 통지를 통과했다 :

NSNotificationCenter.DefaultCenter.AddObserver ("tapPin", TapPin); 

    public void TapPin(NSNotification notification) 
    { 
    Console.WriteLine("Tap Pin is being called by " + notification.Object.ToString()); 
    } 

그런 다음 앱의 위임에이 방법을 추가 죄송합니다 내가해야

[Export("myBackdoorMethod:")] // notice the colon at the end of the method name 
public NSString MyBackdoorMethod(NSString value) 
{ 
    NSNotificationCenter.DefaultCenter.PostNotificationName("tapPin", this); 
} 
관련 문제