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