How to Unit test Spring-Boot Application main() method with SpringApplication.run() . I am wondering if it is possible to get Jacoco test coverage on this class. (Otherwise I will exclude it)
This question is similar, but not the same, as this question: Spring Boot, test main application class
I am using mockito-core 3.8 and mockito-inline.
This test code works for me but Jacoco does not pick it up as test coverage:
@SpringBootTest @ActiveProfiles("test") public class AutowireTest { private static final String ARG = ""; private static final String[] ARGS = new String[]{ARG}; @Autowired ConfigurableApplicationContext context; @Test public void main() { try (MockedStatic<Application> appStatic = Mockito.mockStatic(Application.class); MockedStatic<SpringApplication> springStatic = Mockito.mockStatic( SpringApplication.class)) { appStatic.when(() -> Application.main(ARGS)) .thenCallRealMethod(); springStatic.when(() -> SpringApplication.run(Application.class, ARGS)) .thenReturn(context); // when Application.main(ARGS); //then appStatic.verify(times(1), () -> Application.main(ARGS)); springStatic.verify(times(1), () -> SpringApplication.run(Application.class, ARGS)); } } } Is Jacoco not able to show coverage on static methods?