Модульное тестирование с использованием встроенной Cassandra в Spring Boot - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь протестировать приложение Spring Boot, которое включает в себя сохранение в БД cassandra.Для модульного тестирования я использовал EmbeddedCassandra.

Это зависимости.

compile group: "com.datastax.cassandra", name: "cassandra-driver-core", version:"2.1.7"
    compile group: "com.datastax.cassandra", name: "cassandra-driver-dse", version:"2.1.7"
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile  ("org.cassandraunit:cassandra-unit-spring:2.1.9.2"){
        exclude group:"org.cassandraunit",module:"cassandra-unit"
    }

Это аннотации, которые я использовал

@RunWith(SpringRunner.class)
@WebMvcTest(value = MyController.class)
@Import(value = {MyDao.class})
@ContextConfiguration
@TestExecutionListeners(listeners = {
        CassandraUnitDependencyInjectionTestExecutionListener.class,
        CassandraUnitTestExecutionListener.class,
        ServletTestExecutionListener.class,
        DependencyInjectionTestExecutionListener.class,
        DirtiesContextTestExecutionListener.class}
)
@EmbeddedCassandra(timeout = 60000)
@CassandraDataSet(keyspace = "test", value = {"test.cql"})

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

1 Ответ

0 голосов
/ 02 декабря 2018

Модуль Cassandra использует: native_transport_port: 9142, но при весенней загрузке ожидается порт 9042, поэтому вы должны изменить порт в своей конфигурации или использовать файл cassandra.yaml.В качестве альтернативы вы можете взглянуть на это:

https://github.com/nosan/embedded-cassandra/blob/master/README.adoc#spring-boot

Он также предоставляет аннотацию @Cql для выполнения сценариев cql перед или / и после каждого теста.

Надеюсь, это было бы полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...