2009-05-05 6 views
2

Wie testet man eine Methode, die einige Interaktionen mit dem lokalen D-Bus durchführt (Zugriff auf ein HAL-Objekt)?Unit-Test für D-Bus und HAL?

Ergebnisse der Tests unterscheiden sich je nach dem System, auf dem der Test ausgeführt wird, so dass ich nicht weiß, wie die Methode zuverlässige Eingabe bereitstellen.

Ich arbeite übrigens in Python.

Antwort

2

Wenn Sie die Umgebung nicht verspotten können, ist es wahrscheinlich unmöglich für Sie, den Test zu schreiben. Wenn Ihr Zugriff auf HAL/D-Bus über ein Objekt erfolgt und Sie Ihrem Test eine Scheininstanz zur Verfügung stellen, sollte es möglich sein, die notwendigen Eingaben für Ihren Test von der Scheinimplementierung zu emulieren.

+0

+1 -> Ich war im Begriff, das Gleiche zu posten; emulieren Sie die Schnittstelle, damit Sie die Testeingaben/-antworten laden können, die Sie erwarten, und stellen Sie sicher, dass Ihre Software wie gewünscht reagiert. –

0

Es ist auch möglich, temporäre D-Bus-Busse für Tests zu erstellen und alle Dienste zu emulieren, die Ihr Programm in Ihrem Testcode verwendet. Sie können diesen Ansatz für Programme verwenden, bei denen es sich um D-Bus-Dienste, D-Bus-Clients oder beides handelt. Der Nachteil ist, dass das Bus-Setup ein bisschen haarig ist. Es gibt code for doing this in z.B. Telepathie Gabble.