测试类访问controller一直报bean未注入的问题

测试类访问controller一直报bean未注入的问题

1.问题介绍

今天写了一个controller,在controller里面掉用服务,controller里面自动注入了服务类,在测试时只想看看业务逻辑是否正确,没有采用浏览器url的方式访问,想在测试类里面直接利用new controller() 的实例对象去调用方法,结果一直出现bean未注入的异常。

2.分析过程

排查流程
  • (1)controller的包是否在项目application目录的同级或者时下级。
  • (2)类是否有注解标记,@Controller,@Service等。
  • (3)类的bean的传递是否有@Autowired或者、@Resource注解。
  • 在检查无一上诉问题后,意识到spring对bean的管理不要求去手动的创造给组件@component的对象,意识到controller实例对象是不能去new的。

3.解决办法

  • 在测试类里面自动注入一个controller实例,问题就得到解决了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在分布式项目中,不同的项目可能不在同一个容器中,因此无法直接调用其他项目中的controller。\[1\]然而,在单元测试中,我们可以使用@WebMvcTest注解来测试controller接口。这个注解默认会扫描@Controller注解的组件,但不会扫描@Component、@Service或@Repository等组件。\[2\]因此,如果想要测试controller接口,通常需要与@MockBean注解一起使用。单元测试在项目开发过程中是非常重要的,可以通过测试代码覆盖率来评估代码的质量和可能出现问题的概率。\[3\]所以,测试类可以作为controller进行单元测试,但在实际的分布式项目中,不同项目之间无法直接调用controller。 #### 引用[.reference_title] - *1* [controller层中注入controller](https://blog.csdn.net/m0_46897923/article/details/110874186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [springboot进行controller单元测试](https://blog.csdn.net/john1337/article/details/120541597)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值