java - 如何为 Spring Boot 服务器初始化程序编写 Mockito 测试

标签 java spring spring-boot mockito

有人可以告诉我如何为 ServletInitializer 编写 mockito 测试吗?

package com.home.service.project.HomeServiceProject;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(HomeServiceProjectApplication.class);
    }

}

最佳答案

可以编写以下单元测试来确保 SpringApplicationBuilder使用正确的源类调用,并且该方法返回您传递给 configure 的相同实例.

@ExtendWith(MockitoExtension.class)
//@RunWith(MockitoJUnitRunner.class) for JUnit 4
class ServletInitializerTest {

  @Mock
  private SpringApplicationBuilder springApplicationBuilder;

  @Test
  public void testIt() {
    ServletInitializer servletInitializer = new ServletInitializer();
    when(springApplicationBuilder.sources(HomeServiceProjectApplication.class)).thenReturn(springApplicationBuilder);

    SpringApplicationBuilder result = servletInitializer.configure(springApplicationBuilder);

    verify(springApplicationBuilder).sources(HomeServiceProjectApplication.class);
    assertEquals(springApplicationBuilder,result);
  }

}

我仍然会质疑这个单元测试的值(value),而是尝试找到一种正确的方法来编写集成测试,以至少启动整个应用程序一次,以查看所有内容是否协同工作。

关于java - 如何为 Spring Boot 服务器初始化程序编写 Mockito 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60767858/

相关文章:

java - 使用 google api 读取 google 文本文档时出现问题

java - 这个错误 'org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance' 是什么意思?

java - 如何修复 'com.vaadin.DefaultWidgetSet' 不包含 com.vaadin.addon.charts.Chart 的实现

java - 带有 OR 语句的 Spring @ConditionalOnExpression

java - 使用事务包装 Spring Security 自定义身份验证提供程序

java - 在java中将返回类型作为参数传递?

java - JSON 到 Java 对象 - 无法识别的字段,未标记为可忽略

java - MultipartFile 到 PDF 转换并下载此文件

java - Spring Controller 中的圆形 View

java - Spring 可分页排序与 mongoOperations 一起工作不正确。排序顺序不正确