天天看點

深入實踐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的使用,還可以将注解方式與調用資料庫的方法相結合,那樣就不用再編寫像上面那樣的服務類,并且使用起來更加簡單,這将在後面的章節中介紹。