我有一个示例项目,我在其中尝试不同的技术。
我有以下设置:
- Spring Boot 2.3.4.RELEASE
- 飞路 7.0.1
- 测试容器 1.15.0-rc2
- Junit 5.7.0
如何使用 testcontainer-junit5 测试存储库层?
我现在拥有的代码示例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
注释的神秘面纱吗?在测试存储库时使用它的最佳实践或正确方法是什么?