2010-12-22 8 views
0

Ich versuche, einen automatisierten Test für die Antwort meiner App für einen ausgefallenen Drittanbieterdienst zu schreiben.Strategie für das automatisierte Testen eines Dienstfehlers eines Drittanbieters

Im Allgemeinen ist der Service immer verfügbar. Ich bin auf der Suche nach einer zuverlässigen Methode, um das Herunterfahren zu simulieren, ohne Root-Zugriff zu benötigen. Um eine weitere Falte darin zu setzen: Die zu testende Anwendung würde in einem separaten Prozess sein. Ich dachte daran, nur die Konfiguration zu ändern, die auf den Dienst zeigt, aber das wird nicht funktionieren.

Dies geschieht alles in einer Unix-Umgebung (Linux, OS X), also würde ich es gerne dort arbeiten, aber ich interessiere mich nicht für Windows. Gibt es eine schnelle Möglichkeit, einen ausgehenden Port oder etwas Ähnliches zu blockieren? Es muss auch temporär sein, da dies in der Mitte einer größeren Testsuite passieren muss.

Hoffentlich gibt es eine ziemlich standardmäßige Art, dies zu tun, die ich gerade noch nicht gefunden habe.

Erläuterung: Dies ist ein Funktionstest, um sicherzustellen, dass die GUI korrekt reagiert, wenn der Dienst nicht funktioniert. Der Komponententest ist bereits abgedeckt.

Antwort

1

Erstellen Sie einen Proxy für den Dienst. Zeigen Sie auf den Proxy für den Dienst. Schieße den Proxy für den Dienst ab.

0

Wenn Ihre Anwendung im Hinblick auf Komponententests entwickelt wurde, sollten Sie in der Lage sein, den Drittanbieterdienst durch eine andere Implementierung zu ersetzen.

Die Idee ist, dass Sie den Dienst durch ein Mock-Objekt ersetzen können, das Dummy-Daten zum Testen zurückgibt. Sie können den Dienst auch durch ein Objekt ersetzen, das eine Ausnahme oder ein Zeitlimit auslöst.

Mit dem Mock-Service kann der Tester die Anwendung verwenden und sehen, wie sie auf Serviceausfälle reagiert.

+0

Eigentlich Einheitstests ist es abgedeckt. Dies ist mehr auf der Ebene der Funktionstests. Selen trifft die Anwendung in einem anderen Prozess, ohne die laufende Anwendung ändern zu können. Ich versuche zu testen, was der Benutzer an der GUI sieht, wenn der Dienst nicht funktioniert. – William

+0

@William: Mein Vorschlag zielt auf das Testen der GUI - ich habe einen Satz hinzugefügt, um zu klären. –

Verwandte Themen