Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何对Spring Boot应用程序main()方法进行单元测试以获得Jacoco测试覆盖率_Spring Boot_Unit Testing_Mockito_Jacoco_Springmockito - Fatal编程技术网

Spring boot 如何对Spring Boot应用程序main()方法进行单元测试以获得Jacoco测试覆盖率

Spring boot 如何对Spring Boot应用程序main()方法进行单元测试以获得Jacoco测试覆盖率,spring-boot,unit-testing,mockito,jacoco,springmockito,Spring Boot,Unit Testing,Mockito,Jacoco,Springmockito,如何使用SpringApplication.run()对SpringBoot应用程序main()方法进行单元测试。我想知道是否有可能在这门课上获得Jacoco测试覆盖率。(否则我将排除在外) 这个问题与这个问题相似,但不同: 我正在使用mockitocore3.8和mockitoinline 此测试代码对我有效,但Jacoco不会将其作为测试覆盖率: @SpringBootTest @ActiveProfiles("test") public class AutowireTe

如何使用SpringApplication.run()对SpringBoot应用程序main()方法进行单元测试。我想知道是否有可能在这门课上获得Jacoco测试覆盖率。(否则我将排除在外)

这个问题与这个问题相似,但不同:

我正在使用
mockitocore
3.8和
mockitoinline

此测试代码对我有效,但Jacoco不会将其作为测试覆盖率:

@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));
        }
    }
}
@SpringBootTest
@ActiveProfiles(“测试”)
公共类自动连线测试{
私有静态最终字符串ARG=“”;
私有静态最终字符串[]ARGS=新字符串[]{ARG};
@自动连线
可配置的应用程序上下文上下文;
@试验
公共图书馆{
try(MockedStatic-appStatic=Mockito.mockStatic(Application.class));
MockedStatic springStatic=Mockito.mockStatic(
SpringApplication.class){
appStatic.when(()->Application.main(ARGS))
.thenCallRealMethod();
springStatic.when(()->SpringApplication.run(Application.class,ARGS))
.然后返回(上下文);
//什么时候
Application.main(ARGS);
//然后
应用静态验证(次数(1),
()->Application.main(ARGS));
弹簧静态。验证(次数(1),
()->SpringApplication.run(Application.class,ARGS));
}
}
}

Jacoco是否无法显示静态方法的覆盖范围?

这是否回答了您的问题?不,没有回答,但它确实提供了一个可能是我可以使用的解决方法的答案,通过使用生成的Lombok注释排除代码扫描。我还对如何使用Mockito实现这一点感兴趣(不是Lombok,不必启动服务器),我不明白。我问题中的上述示例已经将Mockito与Mockito.mockStatic一起使用