【发布时间】:2021-02-10 16:21:15
【问题描述】:
我有一个示例项目,我在其中试验不同的技术。
我有以下设置:
- Spring Boot 2.3.4.RELEASE
- 飞路 7.0.1
- 测试容器 1.15.0-rc2
- Junit 5.7.0
如何使用 testcontainer-junit5 测试 Repository 层?
我现在为CompanyRepositoryTest.java 提供的代码示例:
@ExtendWith(SpringExtension.class)
@Testcontainers
public class CompanyRepositoryTest {
@Autowired
private CompanyRepository companyRepository;
@Container
public MySQLContainer mysqlContainer = new MySQLContainer()
.withDatabaseName("foo")
.withUsername("foo")
.withPassword("secret");;
@Test
public void whenFindByIdExecuted_thenNullReturned()
throws Exception {
assertEquals(companyRepository.findById(1L), Optional.ofNullable(null));
}
@Test
public void whenFindAllExecuted_thenEmptyListReturned() {
assertEquals(companyRepository.findAll(), new ArrayList<>());
}
}
当我添加@SpringBootTest 时,我需要设置所有上下文并且有一些应用程序加载上下文问题?
问题是,谁能揭开@TestContainers 注释的作用?在测试存储库时使用它的最佳做法或正确做法是什么?
【问题讨论】:
-
除了已经很好的答案外,本指南还讨论了 Testcontainers + Spring Boot + JUnit (4/5) 的所有可能设置方式:rieckpil.de/…
标签: spring-boot repository-pattern junit5 testcontainers testcontainers-junit5