springboot测试类没有bean注入
时间: 2023-07-05 15:09:13 浏览: 163
详解SpringBoot注入数据的方式
在编写Spring Boot测试类时,如果没有使用@SpringBootTest或@RunWith(SpringRunner.class)注解,测试类就不会在Spring上下文中创建bean,无法进行bean注入。因此,如果你想要在测试类中进行bean注入,需要遵循以下步骤:
1. 使用@SpringBootTest或@RunWith(SpringRunner.class)注解,让测试类在Spring上下文中创建bean。
2. 使用@Autowired或@MockBean注解,对需要依赖注入的bean进行注入或模拟。
3. 在测试方法中使用依赖注入的bean进行测试。
下面是一个示例:
```
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyTest {
@Autowired
private MyService myService;
@MockBean
private MyRepository myRepository;
@Test
public void test() {
when(myRepository.findById(1)).thenReturn(new MyEntity());
MyEntity result = myService.getMyEntityById(1);
assertNotNull(result);
}
}
```
在这个示例中,MyTest类使用了@SpringBootTest和@RunWith(SpringRunner.class)注解,使得该类在Spring上下文中创建bean。同时,使用@Autowired注解对MyService进行注入,在测试方法中使用该bean进行测试。而使用@MockBean注解对MyRepository进行模拟,以便在测试中控制其返回值。
阅读全文