2013-09-04 8 views
10

Ich habe einige Anfragen, die ich mit Android Volley mache. Da die Zuhörer Dinge tun, wie den Antwort-JSON in Objekte zu verwandeln, möchte ich sie testen, um sicherzustellen, dass sie das Richtige tun. Die Sache ist, ich bin nicht sehr darin versunken, wie man Komponententests durchführt. Ich habe Robolectric mit JUnit eingerichtet, aber jede Hilfe wäre willkommen. Wie würde ich meinen Test einrichten, damit ich das Listener-Objekt testen kann, das an die Anfrage übergeben wurde?Android-Volley, wie Einheit Test bestanden Listener

+0

Suchen Sie nach einer Möglichkeit, den Anforderungsmanager zu überspielen, damit Sie die Hauptanforderungsklasse testen können, indem Sie den statischen Inhalt übergeben. Ich bin an genau der gleichen Stelle und werde hoffentlich diese Woche eine Lösung finden. – slott

+0

Wenn Sie erfolgreich sind, würden Sie bitte hier posten? Auch wenn dieses Projekt vorbei ist, würde ich gerne für zukünftige Referenz wissen. – s73v3r

Antwort

2

Es ist genug, um CacheDispatcher aussehen:

 Response<?> response = request.parseNetworkResponse(
       new NetworkResponse(entry.data, entry.responseHeaders)); 

Dies ist, wo die Antwort der Anfrage erstellt wird, abstrakte parseNetworkResponse-Methode (im Fall, dass Sie es umgesetzt haben), und dann:

mDelivery.postResponse(request, response); 

, die tatsächlich die Listener auslöst, wenn Sie in den Code graben. Der Rest des Materials ist threadbezogen. Ich würde empfehlen, einfache Testroutinen zu implementieren, die statische NetworkResponse verwenden und mDeliverys postResponse aufrufen.

Dies bedeutet auch, dass Sie möglicherweise nicht diesen Weg gehen können - es ist genug zu testen, welche Methode (Response.success oder Response.error) aufgerufen wurde - das ist Ihr erster Komponententest. Zweitens, testen Sie einfach Ihre Zuhörer.

+0

Ich habe vergessen, es zu sagen, aber es ist nicht notwendig zu testen, dass Listener oder errorListener im Falle der richtigen Verwendung der Response.success/error-Methoden aufgerufen wurden, gemäß Unit-Test-Prinzipien. Unit-Tests des Volley-Moduls selbst sollten diese Arbeit machen. –

Verwandte Themen