Java游戏服务器开发Spring Cloud

SpringBoot配置与测试用法

2018-03-18  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读