gpt4 book ai didi

unit-testing - 使用 spring-boot-starter-test 和 cassandra 进行单元测试

转载 作者:行者123 更新时间:2023-12-04 08:54:28 24 4
gpt4 key购买 nike

我的 Spring Boot Web 应用程序通过 Datastax 客户端使用 Cassandra DB,连接如下:

public CassandraManager(@Autowired CassandraConfig cassandraConfig) {
config = cassandraConfig;
cluster = Cluster.builder()
.addContactPoint(config.getHost())
.build();
session = cluster.connect(config.getKeyspace());
}

当我运行我的单元测试时,spring boot 应用程序会尝试加载 CassandraManager Bean 并连接到 Cassandra DB,因为我不需要它,它不适用于单元测试。我收到以下错误: [localhost/127.0.0.1:9042] Cannot connect)
有没有办法避免加载这个 Cassandra Manager Bean 来运行我的 UT,因为它们不需要连接到数据库?这样做是一个好习惯吗?

最佳答案

您可以尝试以下对我有用的方法,假设您正在使用 spring-data-cassandra
首先,我们创建另一个配置类,用于不需要 cassandra 连接的测试。这是必需的,因为我们需要排除 CassandraDataAutoConfiguration类(class)。前任:

@SpringBootApplication(exclude = {CassandraDataAutoConfiguration.class})
public class NoCassandraConfig {
}

然后我们将在我们的测试中使用这个配置。前任:
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = NoCassandraConfig.class)
public class UtilitiesTest {
/* Lots of tests that does not need DB connection */
}

你去吧。

关于unit-testing - 使用 spring-boot-starter-test 和 cassandra 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com