Podzieliłem projekt na moduły i mam problem co zrobić z testami, bo maina mam w oddzielnym module, który służy do uruchamiania. Czy to w ogóle jest dobre rozwiązanie? @SpringBootTest
potrzebuje dostęp do klasy z @SpringBootApplication
która jest właśnie w innym module i nie moge jej zaimportować bo występuje cycle reference. Jak to rozwiązać?
@SpringBootTest służy do postawienia contextu Springa (tak jak by Twoja apka normalnie wstała), nie musisz uruchamiać jej z maina. Tworzysz sobie metodę publiczną którą adnotujesz jako @Test i w środku sobie testujesz to co chcesz.
Sprawdz sobie przykład: https://spring.io/guides/gs/testing-web/
Ogólnie jeśli nie testujesz controllerów, czy ogólnie czegoś co stawia Ci spring to wystarcza sam JUnit jeśli masz zamiar testować zwykłe metody a nie flow aplikacji.
Chyba, że źle zrozumiałem bo nie rozumiem dlaczego testy miałbyś mieć w innym module. Nie chodziło Ci o pakiet?
Testy mam również dla kontrolerów. Chodzi o to, że mam moduł A który zawiera @SpringBootApplication
i moduł B który jest uruchamiany za pomocą modułu A, i w module B nie moge importować rzeczy z A, a potrzebuje do testów dostęp do klasy z @SpringBootApplication
aby uruchomić testy.
Jeśli już podzieliłeś to na osobne moduły to możesz stworzyć plik kontekstowy dla testów.
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html
@ContextConfiguration
stwórz moduł c z testami