天天看点

深入实践Spring Boot2.2.3 Redis测试

<b>2.2.3 redis测试</b>

如果还没有安装redis服务器,可以参照本书附录c提供的方法安装,然后在工程的配置文件application.yml中配置连接redis服务器等参数,如代码清单2-12所示。其中host和port分别表示redis数据库服务器的ip地址和开放端口,database可以不用指定,由redis根据存储情况自动选定(注:测试时这些配置是集成在一个配置类中实现的)。

代码清单2-12 redis配置

spring:

    redis:

    # database: 1

        host: 192.168.1.214

        port: 6379

        pool:

            max-idle: 8

            min-idle: 0

            max-active: 8

            max-wait: -1

现在编写一个juint测试程序,来演示如何在redis服务器中存取数据,如代码清单2-13所示。测试程序创建一个部门对象并将其命名为“开发部”,创建一个角色对象并把它命名为admin,创建一个用户对象并把它命名为user,同时设定这个用户属于“开发部”,并把admin这个角色分配给这个用户。接着测试程序使用类名等参数生成一个key,并使用这个key清空原来的数据,然后用这个key存储现在这个用户的数据,最后使用这个key查询用户,并将查到的信息打印出来。

代码清单2-13 redis测试程序

@runwith(springjunit4classrunner.class)

@contextconfiguration(classes

= {redisconfig.class, userredis.class})

public class

redistest {

    private static logger logger =

loggerfactory.getlogger(redistest.class);

    @autowired

    userredis userredis;

    @before

    public void setup(){

        deparment deparment = new deparment();

        deparment.setname("开发部");

        role role = new role();

        role.setname("admin");

        user user = new user();

        user.setname("user");

        user.setcreatedate(new date());

        user.setdeparment(deparment);

        list&lt;role&gt; roles = new

arraylist&lt;&gt;();

        roles.add(role);

        user.setroles(roles);

userredis.delete(this.getclass().getname()+":userbyname:"+user.getname());

userredis.add(this.getclass().getname()+":userbyname:"+user.getname(),

10l, user);

    }

    @test

    public void get(){

        user user =

userredis.get(this.getclass().getname()+":userbyname:

user");

        assert.notnull(user);

        logger.info("======user======

name:{}, deparment:{}, role:{}",

            user.getname(),

user.getdeparment().getname(), user.getroles().get(0).

getname());

}

要运行这个测试程序,可以在idea的run/debug

conf?iguration配置中增加一个juint配置项目,模块选择redis,工作目录选择模块所在的根目录,类选择这个测试程序即dbdemo.redis.test.redistest,并将配置保存为redistest。

使用debug方式运行测试项目redistest。如果测试通过,会输出一个用户的用户名、所属部门和拥有角色等简要信息,如下所示:

dbdemo.redis.test.redistest

- ======user====== name:user, deparment:开发部, role:admin

对于redis的使用,还可以将注解方式与调用数据库的方法相结合,那样就不用再编写像上面那样的服务类,并且使用起来更加简单,这将在后面的章节中介绍。