SpringBoot的JunitTest测试中,Service无法注入;Junit4和Junit5的区别

SpringBoot中,要使Service可以注入,需要添加注解@SpringBootTest和Junit的注解

但要清楚知道你使用的是Junit4还是Junit5

Junit5加@ExtendWith(SpringExtension.class)
Junit4加@RunWith(SpringRunner.class)
选其中一个,否则service无法注入,值为null!!

@RunWith(SpringRunner.class)        //Junit4 
@ExtendWith(SpringExtension.class)  //Junit5
@SpringBootTest
class UserServiceImplTest {
    @Autowired
    private UserService userService;

	@Test
    void loginUser() {
       ....
    }
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
JUnit 测试类中无法完成资源注入某个类的原因可能有几种。以下是一些常见的可能原因和解决方法: 1. JUnit 测试没有使用 Spring 的测试注解:如果你希望在 JUnit 测试类中完成资源注入,你需要使用 Spring 提供的测试注解,例如 `@RunWith(SpringRunner.class)` 或 `@ExtendWith(SpringExtension.class)`。这些注解会启用 Spring 的测试上下文,并允许资源注入。确保你正确地使用了这些注解。 2. 测试没有配置正确的上下文:如果你使用了 Spring 的注解进行资源注入,确保你的测试类所在的包已经包含在 Spring 上下文的扫描范围内。你可以通过在测试类上添加 `@ComponentScan` 或 `@SpringBootTest` 等注解来配置正确的上下文。 3. 资源注入的类没有被正确定义为 Spring Bean:确保你希望注入的类已经被正确地定义为 Spring Bean。你可以在该类上添加 `@Component`、`@Service`、`@Repository` 或其他合适的注解来将其标记为 Spring Bean。 4. 依赖注入框架未正确配置:如果你使用了其他依赖注入框架(如 Guice),确保你已经正确地配置了框架,并且在测试类中使用了正确的注解来进行资源注入。 5. 测试没有使用适当的注入方式:在测试类中进行资源注入时,你可以使用 `@Autowired`、`@Inject` 或 `@Resource` 等注解来标记要注入的资源。确保你使用了适合的注解,并将其应用到正确的位置。 请根据你的具体情况检查以上可能的原因,并尝试相应的解决方法。如果问题仍然存在,请提供更多的代码和错误信息,以便我能够更具体地帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值