测试类无法注入datasource
时间: 2023-10-11 12:08:41 浏览: 84
在测试类中注入 DataSource 可能会出现一些问题,因为测试类不会像在应用程序中一样自动配置 DataSource。所以你需要手动配置 DataSource。
以下是一个使用 H2 内存数据库的示例测试类,其中 DataSource 被手动配置:
```java
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("test")
public class MyRepositoryTest {
@Autowired
private MyRepository myRepository;
@Autowired
private DataSource dataSource;
@Before
public void setup() throws Exception {
ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
populator.addScript(new ClassPathResource("schema.sql"));
populator.addScript(new ClassPathResource("data.sql"));
DatabasePopulatorUtils.execute(populator, dataSource);
}
@Test
public void testFindAll() throws Exception {
List<MyEntity> entities = myRepository.findAll();
assertThat(entities.size(), is(2));
}
}
```
在上面的示例中,我们使用 @Before 方法手动配置了 DataSource。我们创建了一个 ResourceDatabasePopulator 对象,并使用它来执行 SQL 脚本来创建和填充 H2 内存数据库。这样我们就可以在测试方法中使用 myRepository 对象,并验证其行为。
注意,我们在类上使用了 @ActiveProfiles("test"),这告诉 Spring 在测试环境中使用配置文件中的 test 配置。这样我们就可以为测试环境配置独立的 DataSource,而不会影响到我们的生产环境配置。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)