SpringBoot——加载测试专用属性

简单介绍

在之前的时候我们使用过配置文件添加配置,使用过IDEA添加属性配置,使用过命令行添加临时属性配置。在测试中,也可以设置专用于测试的临时配置属性。

使用方法

首先打开SpringBoot中默认创建好的测试类:

打开之后会在主类上看到一个注解叫做@SpringBootTest,这个注解就是测试类中专用的注解,如果我们之后要创建自己的测试类,也需要使用这个注解,这个在之前也稍微有介绍过。然后我们点进去这个注解:

注解中有一properties属性,这个属性就是用来添加测试属性用的,我们先在配置文件中配置一些属性:

这个属性值没有任何的引用,等下我们会在测试类中读取这个配置值:

在测试类中,我们首先读取配置文件中的属性值,然后复制给一个变量,在默认的测试方法中输入这个变量的值,如果对读取配置文件的方式这块不熟悉回去再多看一下:

最后就输出了在配置文件中写好的值,但是现在我们的目的是将属性值修改在测试类中进行暂时修改,就需要使用刚才我们在注解中看到的那个属性:

参数的书写方式和使用properties配置文件的书写方式是一样的,使用"."连接多级配置最后用等号赋值,并且properties属性的值是一个字符串数组,可以同时写多个配置属性。现在我们再次运行测试:

这次的属性值就变成我们在测试注解中配置的值,配置值的默认类型就是字符串,所以不需要加因号,这里要注意。

添加测试时的命令行参数

使用args属性可以测试命令行启动时添加的参数,首先看一下配置的基础环境:

 首先在配置文件中配置一个自定义配置项,这个配置项没有任何的意义,不会被任何的工件读取,我们待会自己写代码读取这个属性的值。

 然后来到测试代码这里,第一个红色框的部分是测试类的核心注解@SpringBootTest,里面已经写好了args属性,属性的值就是我们模拟的在命令行参数启动的时候传入的命令行参数,这里需要注意命令行参数的编写格式,是--xxx=xxx的格式。

第二个红色框的部分是读取配置文件刚才写好的自定义属性,然后测试类中的代码就是输出读取的值。

整个测试类的含义就是我们读取配置文件中的值,但是在测试注解里也配置一个一样的属性,看启动的时候他会读取哪一个配置的值,如果是读取我们在注解中配置的值,也就是args属性对应的值则表示我们刚才说的都是对的,如果他依然读取的是配置文件中的值,那就说明我们配置错了,启动程序看结果:

 

很好,他确实输出了我们在@SpringBootTest中配置的属性值,这就说明我们之前的配置都是正确的。 

这里我们主要介绍的还是参数的优先级,这里命令行参数的优先级比配置文件的优先级要高,所以这里的命令行参数的属性值可以覆盖配置文件中的属性值。

加载测试专用属性的意义在于我们可以单独对某一个测试类或测试用例做测试,而其他的测试类和测试用例不受影响,并且这种属性的添加是源码级别的,即使更换了开发工具,只要运行代码则属性配置依然会保留。

先来看一下@SpringBootTest这个注解中,包含有很多的属性值可以传递,先看一下这个注解包含的属性:

在SpringBoot的官方文档中,我们可以看到关于SpringBootTest注解的所有的可选参数,之前我们也介绍过一些了,剩下的这些我们可以翻译成人话再看一次,这样下次我们在查阅官方文档的时候再看到类似的字眼和奇怪的翻译不同的地方至少知道哪里可以猜一下他的大概意思。

  • value:属性properties的别名,也就是说他的作用和properties的作用是一样的,而SpringBoot的属性有一个特性,就是当属性仅有一个的时候默认是value属性的属性值,且value属性名可以不写,那么就表示当想要设置一些测试属性的参数的时候,可以直接写参数而不用写属性名
  • classes:用于指定SpringBoot启动类的所在路径,这些不用写是因为启动类和测试类在同一个包下,他自动会扫描同一个包下面有没有启动类,如果没有会报错,要求你指定启动类的时候就会用到这个属性,这个之前我们见到过。
  • args:用于指定测试的时候添加的命令行参数。我们的SpringBoot程序可以使用命令行启动,当使用命令行参数启动的时候就会涉及到一个命令行参数的问题,这个参数就是用来在测试的时候模拟命令行参数用的。

  • properties:这个的作用刚才已经说过了,用来在测试的时候输入测试参数使用的。

  • webEnvironment:这个是模拟Web环境的测试使用的。我们的Web环境测试并不只是在启动项目之后使用PostMan测试请求是否发送,我们在使用PostMan测试之前应该自己也测试一遍,这个参数就是用来模拟Web环境发送请求的,这个之后就会再次见到。

  • useMainMethod:创建待测 SpringApplication 时要使用的 main 方法使用类型。这个现在先了解一下就好,之后会详细的说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值