Jeśli w swojej klasie TestCase jest to adnotacje:zajęcia uniemożliwiają zastosowanie/CommandLineRunner z wykonaniem podczas testów JUnit
@SpringApplicationConfiguration(classes = {Application.class})
to spowoduje Application.class
, wdrożenie interfejsu CommandLineRunner
, aby uruchomić wymaganej metody
public void run(String... args) throws Exception
Nadal uważam, że jest to najczęściej niepożądane zachowanie, ponieważ w środowisku testowym może nie być konieczne uruchomienie całej aplikacji.
mam na myśli dwa rozwiązania, aby obejść ten problem:
- do usuwania interfejs
CommandLineRunner
z mojegoApplication
klasy - mieć inny kontekst testowania
Zarówno To rozwiązanie wymaga dużo kodowania. Czy masz wygodniejsze rozwiązanie?
Czy możesz podać przykład co chcesz przetestować? Jeśli chcesz przetestować coś bez całej aplikacji, to nie potrzebujesz adnotacji. – alexvetter
Chciałbym przetestować całą aplikację (powiedzmy ze wszystkimi zarejestrowanymi ziarnami). Nie podoba mi się to, że zaczyna się cała aplikacja, ze względu na implementację interfejsu 'CommandLineRunner'. Powinien istnieć sposób na załadowanie takiej klasy aplikacji bez uruchamiania metody 'run'. – Gorgia666
To jest dokładnie moja opinia, jest to niechciany efekt uboczny lub przynajmniej SpringRunner powinien dać opcję, aby temu zapobiec. i uruchom kontekst, gdy wszystko w teście jest ustawione. – mohamnag