Ich bin derzeit in einer Klasse für Softwaretests, in der wir für unser Semesterprojekt mehrere Testarten durchführen müssen, wie z. B. Komponententests und Integrationstests. Für den Integrationstest verwendete der Professor angeblich Mocks und Spottbibliotheken (wie EasyMock und Mockito) für unseren Integrationstest. Ich bin allerdings ziemlich verwirrt. Integrationstests sind Tests außerhalb von Klassen, Modulen, Diensten usw. Warum sollten Mocks und Stubs für Integrationstests geeignet sein, wenn Sie mehrere Klassen und Dienste testen?
unit-testing
testing
integration-tests
mocking
TheLegendOfCode
quelle
quelle
Antworten:
Wenn Sie eine Funktion haben, die mehrere externe Komponenten berührt, können Sie alle außer einer verspotten, um eine bestimmte Komponente zu isolieren und zu testen. Angenommen, Sie haben eine Funktion, die einen Webdienst aufruft und dann basierend auf den Ergebnissen eine Aktion mit einer Datenbank ausführt. Sie könnten drei Integrationstests schreiben:
Wenn Sie alle drei Tests ausführen und 1 und 3 fehlschlagen, besteht eine gute Chance, dass in Ihrem Code ein Fehler vorliegt, der mit der Datenbank funktioniert, da der einzige bestandene Test der Test war, der die Schein-Datenbank-Konnektivität verwendet.
Im Allgemeinen werden bei Integrationstests keine Mocks verwendet, aber ich habe gelegentlich so etwas getan.
quelle
Es ist nicht sofort klar, was unter Integrationstest zu verstehen ist, aber die Verwendung von Fakes / Mocks / Test Doubles ist eine gültige Technik, um Testszenarien auf allen Ebenen innerhalb der Testpyramide zu erstellen . [1] [2] [3]
quelle