2016-07-15 16 views
0

Ich schreibe Testfälle für eine Xamarin App. Ich arbeite derzeit an einem Xamarin-Projekt, das MapBox verwendet. Ich muss in der Lage sein, das Tippen auf einen Pin zu testen, der sich auf der Karte befindet. Ich sehe, dass Xamarin.UITest ermöglicht TapCoordinates (x, y), aber das funktioniert nicht. Ich brauche den Pin, um ein Overlay zu öffnen, was im iOS-Simulator gut funktioniert, wenn ich darauf klicke. Wie unterscheidet sich TapCoordinates()?Gibt es eine Möglichkeit, mit Xamarin.UITest einen Pin auf einer Karte zu tippen, um zu testen, ob er angeklickt wird?

Antwort

0

TapCoordinates ist nicht Teil von NUnit. Es ist Teil von Xamarin.UiTest. Es testet nichts, es tut etwas mit Ihrer App. Insbesondere simuliert es den Benutzer, der an einer bestimmten Stelle klopft.

Wenn Sie etwas mit NUnit testen möchten, testen Sie normalerweise, was Sie als Ergebnis des Abzapfens des Pins erwarten.

Viele Benutzer scheinen UI-Tests ohne NUnit-Assertions zu schreiben. Sie betrachten ihren Test als bestanden, wenn keine Ausnahmen ausgelöst werden.

Sie können wahrscheinlich eine bessere Antwort erhalten, wenn Sie angeben, was Sie testen möchten, dh was als Ergebnis des Tippens geschehen soll.

+0

Sorry, ich soll habe meine Frage besser formuliert. Ich benutze sowohl NUnit als auch Xamarin.UiTest. Ich möchte das Tippen auf den Pin nachahmen, so dass die Benutzeroberfläche ein Popup anzeigt, das ich wiederum simulieren möchte. Ich muss UI-Tests für die Vielzahl der Geräte dort automatisieren – ArbiterUnknown

+0

Jemand mit mehr Wissen von Xamarin UiTest wird beantworten müssen, aber es klingt wie Sie überprüfen möchten, dass ein bestimmtes Ereignis beim Tippen erzeugt wird. In der Regel teste ich die Generierung von Ereignissen und deren Behandlung immer separat. – Charlie

+0

In Ordnung, wenn Sie versuchen, auf den Pin zu tippen, um die Methode aufzurufen, die aufgerufen werden soll, wenn der Pin mit einem Hintertür-Anruf angeklickt wird: https://developer.xamarin.com/guides/testcloud/uitest/working -with/backdoors/ Meine App stürzt nun ab, wenn es zur Backdoor-Methode kommt – ArbiterUnknown

0

Also musste ich eine Backdoor-Methode auf der Android-Hauptaktivität und dem iOS-App-Delegaten erstellen. Dann hatte ich eine Benachrichtigung an die gleichen Methode zu übergeben, die aufgerufen wird, wenn ein Stift etwas ähnlich den folgenden Code abgegriffen wird:

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

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

dann diese Methode in den Delegaten App hinzufügen

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