相关文章推荐
逃跑的生菜  ·  ZLib ...·  1 年前    · 
有腹肌的上铺  ·  mysql ...·  1 年前    · 

在整个系统的高度。
一般我们测试的模块就是整个系统的启动模块:

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class App {
    public static void main(String[] args) {
        SpringApplicationBuilder builder = new SpringApplicationBuilder(App.class);
        builder.run(args);

此时测试启动类通用写法:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)   // 自动base App.class搜索 @SpringBootConfiguration 因此无需额外配置
public class AppTest {
    @Test
    public void run() {

检验多模块之间的连接正确性。

没有上述的整个系统启动类,因此需要额外配置SpringBoot上下文。通用写法:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {DaoAutoConfiguration.class, AppTest.class})  // 在此指定需要集成的多个模块的配置
@EnableAutoConfiguration
@SpringBootConfiguration  // 构建 SpringBoot 上下文
public class AppTest {
    @Test
    public void run() {

用于测试独立模块。

通用写法:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppTest.class) // 没有自动装配需要显示指定从当前启动类开始加载
@SpringBootConfiguration	// 或 @ContextConfiguration
public class AppTest {
    @Test
    public void run() {
@RunWith(SpringRunner.class)
@SpringBootTest
public class AppTest {
    @Test
    public void run() {

上面的写法纯粹个人摸索,建议根据项目情况灵活使用。

特别是对于某些项目模块划分边界界定不清的,需要格外注意集成测试和单元测试时的@ContextConfiguration与@SpringBootConfiguration之间的使用上的区别。

以及搭配@EnableAutoConfiguration、@ComponentScan、@SpringBootTest指定配置以及过滤等。

引用网图:SpringBootTest 在测试时如果没分清楚测试类型可能导致不能正常启动或测试出错哟。系统测试在整个系统的高度。一般我们测试的模块就是整个系统的启动模块:@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)public class App { public static void main(String[] args) { SpringApplicationBuilde
在我之前的一篇文章中,我创建了一个 API 来上传文件。在这篇文章中,我将编写一个 JUnit 测试测试 API。我们将测试从上传到复制到文件系统的完整流程,然后我们还将看到如何模拟 FileService 类,以便上传的文件不会复制到文件系统。 @Slf4j @RestController @RequestMapping("/api/files") public class FileUploadAPIController { @Autowired FileService fileServic
RestfulAPI简介 RepresentationalStateTransfer,简称为REST,即表现层状态转化,简单来说,客户端通过HTTP方法对服务器的资源进行操作,实现表现层状态转化 GET:获取资源 POST:新建资源 PUT:更新资源 DELETE:删除资源 Restful是目前最流行的API设计规范,用于Web数据接口的设计; 构建Restful...
Case - SpringBootTest 使用过程中遇到的冷门问题 使用SpringBootTest 测试DAO 逻辑,直接报错:java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>() 从异常日志分析,是 tk.mybatis 的增强方法初始化问题。可是,启动工程调用该DAO 方法,是正常执行的,那么问题是出在哪呢? @Slf4j @RunWith(Sp
Spring Boot提供了许多实用程序和注解,帮助测试应用程序。测试支持由两个模块提供:spring-boot-test 包含核心项,spring-boot-test-autoconfigure 支持测试的自动配置。 大多数开发人员使用 spring-boot-starter-test,它同导入 SpringBoot 测试模...
互联网产品的测试策略现在很多都会存在API测试、轻量级GUI测试、轻量级单元测试等。API测试其实我们一开始想得最多的图形化工具应该是postman、jmeter等。如果使用最简单的get方法,还可以直接通过使用CURL命令(即命令行工具cURL)。 1.API测试的基本步骤 不管使用什么API测试工具,API测试的基本步骤大体一致: 1.准备测试数据 2.通过API测试工具,发起对被测API的request 3.验证返回结果的response 2.基于Spring Boot构建的API 我们平在工作中.
第一步,在测试类外面加上如下注解: @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 如果不是web,可以删掉webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.ht
如何测试SpringBoot的请求使用spring-boot-starter-test这个包即可完成测试SpringBoot项目为什么需要测试本章不作过多说明,重点放在测试代码上。 使用说明 gradle项目 compile group: 'com.fasterxml.jackson.jaxrs', name:'jackson-jaxrs-xml-provider',version:'2.5.0' compile group: 'org.springframework.boot', name: .
安装完Redis直接用我编写的脚本,一键启停。 集群启动脚本 脚本说明:自动创建9个Redis节点配置文件,最新版的Redis是创建完成后自动连接。也不需要ruby或server-cli来连接。 PS:server-cli写成shell脚本的形式执行有个bug,不过放心,我这个脚本暂未发现bug。 @Test public void testGetMethod() throws Exception { MvcResult result = mockMvc.perform(get("/face/match")) .andExpect(status().isOk())// 模拟向testRest发送get请求...
如前一篇文章(《spring boot web api》)所述,spring boot项目里提供web api非常方便。而作为开发人员,自己写的api,首先要自己先测试一轮,通过才能给其他人调用。API就是用来调用的,所以沟通、测试显得特别重要。 程序员测试,当然是单元测试了。下面是一个完整的单元测试代码。待测试API是POST访问方式的api,有两个:一个提交参数格式为json,一个为键值对。...
spring容器中的类做单元测试 在src/main下建立UserService类,对其进行单于测试,生产其单元测试类(使用command+shift+T快捷键),生成的test类在src/test下 @Servi... &lt;properties&gt; &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; &lt;/pro...