Надежные библиотеки для весенних загрузочных тестов интеграции Redis - PullRequest
0 голосов
/ 21 мая 2018

Это больше вопрос к инструменту - поискать, мне не особо повезло.

Итак, в основном у меня есть стандартное приложение с весенней загрузкой - и у меня есть конфигурация redis-кэша модульного теста.То, что я хочу сделать, - это запустить контекст приложения автоматически с помощью некоторых весенних конфигураций и по возможности проверить встроенный кэш redis.

Самое близкое, что я получил, это https://github.com/kstyrc/embedded-redis.

Проблема с этимотсутствие надежного ведения журнала затрудняет его выполнение - оно работает локально, но когда я запускаю его, Unix-сервер собирает машину, она выходит из строя и не знает, почему.

Если у кого-то есть идеи о том, как запускать интеграционные тесты таким образом, это было бы здорово.

спасибо,

Стефан

1 Ответ

0 голосов
/ 11 июля 2018

Я использую embedded-redis для тестирования интеграции с Java-клиентом Redisson.Вот моя зависимость

compile group: 'org.redisson', name: 'redisson', version: '3.6.5'
testCompile group: 'it.ozimov', name: 'embedded-redis', version: '0.7.2'

Запустите встроенный сервер Redis перед классом и остановите его после класса.

Свойство Redis:

spring.redis.host=localhost
spring.redis.port=6379

Образец Интеграционный тест.

import java.util.concurrent.TimeUnit;

import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.redisson.api.RMap;
import org.redisson.api.RMapCache;
import org.redisson.api.RedissonClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.test.context.junit4.SpringRunner;


import redis.embedded.RedisServer;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.RANDOM_PORT)
public class RedisTest {

    private static final Logger LOGGER = LoggerFactory.getLogger(RedisTest.class);

    private static RedisServer REDISSERVER = new RedisServer(6379);

    @LocalServerPort
    private int port;

    @Autowired
    private RedissonClient redissonClient;

    @BeforeClass
    public static final void before() {
        REDISSERVER.start();
    }

    @AfterClass
    public static  final void after() { 
        REDISSERVER.stop();
    }

    @Test
    public void testRedis() throws InterruptedException {
        //map
        RMap<String, String> map = redissonClient.getMap("user");
        map.put("name", "Redis Server");
        Assert.assertTrue(map.get("name").equals("Redis Server"));

        //mapcache
        RMapCache<String, String> mapCache = redissonClient.getMapCache("tempUser");
        mapCache.put("name", "Redis Server", 5, TimeUnit.SECONDS);
        Assert.assertTrue(mapCache.get("name").equals("Redis Server"));
        Thread.sleep(7000); //wait for 7 sec.
        Assert.assertTrue(mapCache.get("name") == null);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...