Ich habe eine Django-App, die die elastische Suche verwendet. Ich möchte eine 100% ige Code-Testabdeckung haben, also muss ich API-Aufrufe an elasticsearch testen (was lokal "installiert" wird).
Also meine Frage ist: Ist es besser, ganze Elasticsearch zu verspotten oder sollte ich elasticserver laufen lassen und die Ergebnisse überprüfen?
IMO Es ist besser, elasticsearch zuzuspielen und einfach den Python-Code zu überprüfen (zu testen, ob alles mit den richtigen Parametern aufgerufen wurde).
Sie können einige grundlegende Integrationstests schreiben, die tatsächlich elasticsearch aufrufen und dann verbleibende verwandte Methoden in Sichten, Modellen usw. mit Komponententests abdecken. Auf diese Weise können Sie alles testen, ohne Elasticsearch austricksen zu müssen und mögliche Fehler / Verhaltensweisen zu entdecken, die Sie sonst nicht hätten.
Wir verwenden Django-Heuhaufen ( Ссылка ), der eine einheitliche API für Such-Backends bietet, einschließlich elasticsearch und auch folgende Verwaltungsbefehle:
Sie können die obigen Informationen in Ihre Basisintegrationstestklasse einbinden, um Suchindizes zu verwalten. Zum Beispiel:
%Vor%Tags und Links python django unit-testing elasticsearch