RedisTemplate verfallen nicht funktioniert

Ich versuche, test ablaufen Methode in RedisTemplate. Zum Beispiel, ich Speichere session in redis, und, als zu versuchen, abrufen-Sitzung und überprüfen Sie, dass die Werte identisch sind. Für verfallen session, die ich verwenden, verfallen () - Methode der redisTemplate und für immer abgelaufen-Sitzung, die ich verwenden getExpire () - Methode. Aber es funktioniert nicht. Wie kann ich das testen Wert, gespeichert in redis?

//without import and fields
public class Cache() {     

    private StringRedisTemplate redisTemplate;

    public boolean expireSession(String session, int duration) {
      return redisTemplate.expire(session, duration, TimeUnit.MINUTES);    
    } 
}

//Test class without imports and fields 
public class TestCache() {  

    private Cache cache = new Cache(); 
    @Test
    public void testExpireSession() {
        Integer duration = 16;
        String session = "SESSION_123";
        cache.expireSession(session, duration);
        assertEquals(redisTemplate.getExpire(session, TimeUnit.MINUTES), Long.valueOf(duration));    
    }    
}

aber test fehlschlägt mit AssertionError:

Erwartet :16 Aktuell :0

UPDATE:
Ich dachte, dass getExpire () - Methode nicht funktioniert, aber in der Tat verfallen () - Methode nicht funktioniert. Es gibt Sie false zurück. redisTemplate ist eine spring-Bean, die autowired zu testen-Klasse. Es gibt viele andere test-Methoden in TestCache Klasse, die ordnungsgemäß funktionieren.

  • Funktioniert der key vorhanden ist, die Sie wollen, zu verfallen? Ihr code nicht enthalten einen Teil, in dem ein Schlüssel erstellt wird. expire gibt true zurück, wenn die ablaufen, angewendet werden konnte. Siehe redis.io/Befehle/pexpire für weitere details.
  • Sitzung, die ich senden als parameter an redisTemplate.expire() ist ein Schlüssel String session = "SESSION_123";
  • Ich meinte, ob der Schlüssel "SESSION_123" zu der Zeit gab es den test auf eigene redis-Instanz.
  • Es muss vorhanden sein. In meinem code, den ich verfallen Sitzung mit diesem Schlüssel. Ich start redis-server-Klasse vor und stoppen Sie nach dem Unterricht.
  • Ich weiß nicht, warum, aber redisTemplate Rückkehr false aus expire() Methode
InformationsquelleAutor Nikolas | 2015-05-25
Schreibe einen Kommentar