关于Spring Boot 用JUint做Service层的测试时,一直无法注入Bean的问题

在配置JUint进行Spring Boot Service层测试时遇到Bean注入问题。通过添加@SpringBootTest(classes = BackendApplication.class)指定启动Application和使用@ContextConfiguration(locations = { "classpath*:*-config.xml"})引入配置文件,解决了无法注入的问题。最初尝试@WebAppConfiguration和@TestPropertySource失败,最终通过调整@ContextConfiguration的通配符匹配规则成功注入。
摘要由CSDN通过智能技术生成

今天在配置JUint做Service层测试,发现Bean一直无法注入,刷了很多的博客,一直没有成功。

先附上最后成功的代码

/**
 * @author Jame
 * @date 2018/07/24 16:47
 */
@RunWith(SpringRunner.class)
@SpringBootTest(classes = BackendApplication.class)
@ContextConfiguration(locations = { "classpath*:*-config.xml"})
public class MessageNoticeServiceImplTest  {

    @Resource
    private MessageNoticeService messageNoticeService;

    @Test
    public void sendMessage() {
        Assert.assertNull(messageNoticeService.sendMessage("标题","内容",10001,null));
    }
}

关键点在于:

1、@SpringBootTest(classes = BackendApplication.class)

作为SpringBoot测试项目启动,标注启动的Application。亲测缺失注解和不指定Application都无法注入成功。

2、@ContextConfiguration(locations = { "classpath*:*-config.xml"})

或者是  @ContextConfiguration(locations = { "c
生成一个使用JUnit进行单元测试Spring boot 工程,可以按照以下步骤进行: 1. 使用Spring Initializr在线工具或者在Eclipse、IntelliJ IDEA等IDE中创建一个Spring boot项目,选择Web、JPA和MySQL等依赖。 2. 在pom.xml文件中添加JUnit和Mockito等测试依赖。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> ``` 3. 创建一个测试类,使用JUnit和Mockito等工具进行测试。 ```java @RunWith(SpringRunner.class) @SpringBootTest public class UserServiceTest { @MockBean private UserRepository userRepository; @Autowired private UserService userService; @Test public void testGetUserById() { User user = new User(); user.setId(1L); user.setName("Test"); user.setAge(18); Mockito.when(userRepository.findById(1L)).thenReturn(Optional.of(user)); User result = userService.getUserById(1L); Assert.assertEquals(result.getName(), "Test"); Assert.assertEquals(result.getAge(), 18); } } ``` 在这个例子中,使用@RunWith和@SpringBootTest注解来配置测试环境,使用@MockBean注解来模拟依赖的UserRepository对象,使用@Autowired注解来注入需要测试的UserService对象,使用Mockito.when和Assert.assertEquals等方法来进行测试。 4. 运行测试用例,查看测试结果。 在Eclipse、IntelliJ IDEA等IDE中,可以右键点击测试类并选择Run As JUnit Test来运行测试用例。测试结果将会在控制台中输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值