【发布时间】:2016-12-07 19:49:27
【问题描述】:
我想测试我的 SpringBoot 应用程序,它使用 cassandra 作为 CrudRepository。我最终得到了
/*
* https://github.com/jsevellec/cassandra-unit/wiki/Spring-for-Cassandra-unit
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ComponentScan
@ContextConfiguration(value = { "classpath:/default-context.xml" })
@TestExecutionListeners({ CassandraUnitTestExecutionListener.class })
@CassandraDataSet(value = { "setupTables.cql" }, keyspace = "keyspaceToCreate")
@CassandraUnit
public class ApplicationTests {
@Autowired
MyCassandraRepository repo;
@Test
public void contextLoads() {
System.out.println(repo.findAll());
}
}
与
<dependency>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit-spring</artifactId>
<version>3.0.0.1</version>
<scope>test</scope>
</dependency>
和
CREATE TABLE MY_CASSANDRA_ENTRY (
MY_CASS_STRING varchar PRIMARY KEY
)
这导致
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9142 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
如果我使用旧版本的 cassandra-unit-spring
<dependency>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit-spring</artifactId>
<version>2.1.9.2</version>
<scope>test</scope>
</dependency>
它以 NullPointerException 结束,因为未注入值 repo。
来源https://github.com/StephanPraetsch/spring.boot.cassandra.unit.test
【问题讨论】:
-
你用的是女巫版的spring boot和spring data cassandra吗?在某些版本中,某些网络依赖项存在冲突。如果您使用 gradle 或 maven,查看依赖树可能会有所帮助
标签: java unit-testing spring-boot cassandra spring-data-cassandra