How to test main class of Spring-boot application

后端 未结 9 1856
心在旅途
心在旅途 2020-12-03 00:18

I have a spring-boot application where my @SpringBootApplication starter class looks like a standard one. So I created many tests for all my functi

9条回答
  •  醉梦人生
    2020-12-03 00:49

    You can Mock SpringApplication since that is a dependency of the method under test. See how here. I.e.

    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.powermock.core.classloader.annotations.PrepareForTest;
    import org.powermock.modules.junit4.PowerMockRunner;
    import org.springframework.boot.SpringApplication;
    
    import static org.powermock.api.mockito.PowerMockito.mockStatic;
    import static org.powermock.api.mockito.PowerMockito.verifyStatic;
    
    @RunWith(PowerMockRunner.class)
    public class ElectronicGiftcardServiceApplicationTest {
    
        @Test
        @PrepareForTest(SpringApplication.class)
        public void main() {
            mockStatic(SpringApplication.class);
            ElectronicGiftcardServiceApplication.main(new String[]{"Hello", "World"});
            verifyStatic(SpringApplication.class);
            SpringApplication.run(ElectronicGiftcardServiceApplication.class, new String[]{"Hello", "World"});
        }
    
    }
    

提交回复
热议问题