Wie spottet man einen Elasticsearch Java Client?

9

Weißt du, wie man den Elasticsearch Java Client propagiert? Derzeit die folgende Anfrage in Java zu verspotten:

%Vor%

Ich muss spotten:

  • client.prepareSearch
  • SearchRequestBuilder:
    • builder.execute
    • builder.setSize
    • builder.setFrom
    • builder.setTypes
  • Suchantwort:
    • action.actionGet
  • Suchantwort:
    • response.getHits
    • searchHits.getHits

So sieht mein Test aus:

%Vor%

Hässlich ... Ich würde gerne wissen, ob es einen "eleganteren Weg" gibt, diesen Code zu verspotten.

Danke

    
Thibaut M. 31.03.2015, 12:56
quelle

1 Antwort

2

Ich bin auf ein ähnliches Problem gestoßen, als ich Bauarbeiter verspottete, also dachte ich, ich würde experimentieren, um zu sehen, ob es einen schöneren Weg gibt.

Wie Mr. Spoon gesagt hat, ist es wahrscheinlich netter, wenn Sie es vermeiden können, dies zuerst zu tun, da es nicht Ihr Code ist und man annehmen könnte, dass er "einfach funktioniert", aber ich dachte, ich würde es trotzdem versuchen.

Ich habe mir eine (vielleicht grobe) Vorgehensweise ausgedacht, indem ich in Mockito "Standardantworten" verwende. Ich entscheide immer noch, ob es mir gefällt oder nicht.

Hier ist mein Erbauer ...

%Vor%

(Ziemlich Grundrecht?)

Ich habe meinen Test so aussehen lassen ...

%Vor%

Wenn ich jetzt Folgendes tue ...

%Vor%

... Ich erwarte, dass "[ARGH!]" ausgegeben wird.

Wenn ich die letzte Zeile geändert habe ...

%Vor%

... dann erwarte ich, dass es mit einer NullPointerException bricht.

Hier ist der eigentliche "BuilderMocker" ...

%Vor%

Ich bin mir nicht sicher, ob es eine "eingebaute" Möglichkeit gibt, dies in Mockito zu tun, aber das scheint zu funktionieren.

    
BretC 31.03.2015 14:14
quelle