SpringBoot配置与测试用法

作者: 王广帅 | 来源:发表于2018-03-18 00:05 被阅读3次

    这里总结一下spring刚开始使用时遇到的一些问题,我想对于初学者应该有些帮忙。

    一,配置嵌套的问题

    我在项目中使用到了redis,但是没有使用spring-boot-data-redis的包,而是自己封装的Jedis客户端。我需要在配置中配置一下redis的连接池等相关信息:application.yml如下:

    图1

    这里明显有一个嵌套的关系配置,对应的Java properties类为:

    第一个红框是必须有的注解,第二个红框是我遇到的问题的地方,最开始的时候,我在网上找的例子,我定义的内部类并没有public static的修饰。但是在运行的时候就会报错:

    说找不到方法,因为以前做项目的时候,遇到过类似的问题,就立刻把public static加上了,这个错误也解决了,另一种方法是把RedisConfigPool这个类放到外面,单独定义一个类。

    这个配置类加载没有问题之后,我们就可以在别的类中这样引用:

    二,使用@Bean创建Bean

    这个应该比较简单:

    这个就是创建一个RedisClient的bean.不过这里有个知识点,就是bean引用另一个bean,上图是一种方法,还可以通过方法传过来,例如:

    三,Spring Boot的测试

    在做一个项目的时候,我首先想到的就是测试,如果写代码之后,不方便测试,对于代码的质量保证就只能靠每个人的思维能力了。而且以后重构某个功能也没有信心保证没有问题。

    如果有良好的测试配合,那就方便多了。这一点spring boot也替我们想到了。

    一,基本于整个项目的测试

    这种方法很简单,类似于把整个项目启动成功之后,再执行项目中的某个方法。配置如下:

    这就是我要测试的写的RedisService类的方法。注释掉的也不说,以后会解释。

    这样在运行测试用命的时候,就像执行项目的main方法一样,main方法执行完之后,所有的bean都被加载到了,再执行测试用例。

    二,基于某个类,单独测试

    这种测试方法不用启动整个项目,只需要把测试某个类相关的类都指定进来就可以了。

    像这种,我只是测试RedisService类,我只需要把这个类指定进来即可,包括它依赖的一些类

    @ContextConfiguration这个注解是用来指定由@Bean创建的类所在的Java配置类,即可那些在测试中用到的由@Configuration标记的类

    上面这种测试方法各有优点。第一种简单粗暴,把项目中所有的类都引进来,不用手动指定。但是如果项目比较大,可能启动慢。

    第二种相对来说测试启动快,只因只需要引用指定的类即可,麻烦的是我们必须手动指定那些在测试中用到的类。

    三,测试依赖

    比如我们有两个测试,一个是插入,另一个是查询。在编译测试用例的时候,我们需要在测试查询的时候,先去注册,只有注册成功了,才能查询是否正确。

    可以使用测试依赖:

    @Test(dependsOnMethods = { "registerSlots" })

    public void getSlots() {

    }

    @Test

    public void registerSlots() {

    }

    四,测试controller接口

    测试controller
    被测试的controller

    相关文章

      网友评论

        本文标题:SpringBoot配置与测试用法

        本文链接:https://www.haomeiwen.com/subject/qvmsqftx.html