Verhindern, dass Application / CommandLineRunner Klassen während der Ausführung von JUnit-Tests

Wenn du in deinem TestCase-Klasse gibt es diese Anmerkungen:

@SpringApplicationConfiguration(classes = {Application.class})

dadurch wird die Application.class Umsetzung der CommandLineRunner - Schnittstelle, führen Sie die erforderliche Methode

public void run(String... args) throws Exception

Ich denke immer noch das ist, meistens, ein nicht erwünschtes Verhalten, da in der Testumgebung können Sie nicht wollen, um die gesamte Anwendung.

Habe ich im Hinterkopf, zwei Lösungen dieses problem zu umgehen:

  1. zu entfernen, die CommandLineRunner Schnittstelle von meinem Application Klasse
  2. einen anderen Kontext für die Prüfung

Beide diese Lösung erfordert eine Menge coding.
Haben Sie eine bequeme Lösung?

  • Können Sie ein Beispiel geben, was Sie testen wollen? Wenn Sie wollen, etwas zu testen, ohne die ganze Anwendung, als Sie müssten sich dann nicht die annotation.
  • Ich möchte zum testen der ganzen Anwendung (sagen wir mal mit alle registrierten beans). Was ich nicht mag ist, dass die gesamte Anwendung gestartet wird, aufgrund der CommandLineRunner interface-Implementierung. Es sollte eine Möglichkeit zum laden einer Anwendung Klasse, ohne das run Methode.
  • Das ist genau meine Meinung, es ist eine unerwünschte Nebenwirkung oder zumindest SpringRunner sollte Ihnen die Möglichkeit geben, es zu verhindern. und starten Sie den Kontext, wenn alles in test-setup.
InformationsquelleAutor Gorgia666 | 2015-03-30
Schreibe einen Kommentar