java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解?
踩坑半天多,终于在网上寻觅到了解决方案,特此分享一下。
重要前提:src/main/java下的根包名必须和src/test/main的根包名完全一致,否则就会发生死活不能注入的情况,要继续进行下面的步骤,请先确认这个重要前提。
再接下来就是常规配置了。
pom.xml增加依赖spring-boot-starter-test,它会引入JUnit的测试包:
org.springframework.boot
spring-boot-starter-test
test
然后给需要注入的类增加Component或是Service注解:
@SpringBootApplication
@Componentpublic class WebhookApplication implementsCommandLineRunner {private final Logger logger = LoggerFactory.getLogger(WebhookApplication.class);//Proxy server(from application-dev(stg,prod,qa).yml)
@Value("${webhook.proxy}")privateString proxy;public voidsetProxy(String proxy) {this.proxy =proxy;
}
...
}
@Servicepublic classWebhookService {private final Logger logger = LoggerFactory.getLogger(WebhookService.class);
...
}
写Component或是Service注解目的是能让这些类可以被Autowired方式输入。
再往下就是写测试类了:
@RunWith(SpringRunner.class)
@SpringBootTestpublic classWebhookApplicationTest {
@Autowiredprivate WebhookApplication app=null;
@Autowiredprivate WebhookService service=null;
@Testpublic voidtest() {
Assert.assertNotNull(app);
}
@Testpublic voidtest2() {
Assert.assertNotNull(service);
}
...
}
其中SpringRunner是Spring结合JUnit的运行器,说明这里可以进行JUnit测试。
注解@SpringBootTest是可以配置SpringBoot的关于测试的相关功能。
完事以后,运行test或是test2,能发现app或是service不为空了,这说明注入正确了。
--2020-04-09--
参考资料二:《深入浅出SpringBoot2.x》杨开振著
java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解?相关推荐
- java类方法不写权限就时default_Day11_final、权限、内部类
<Java自学180天笔记> final关键字概念 package cn.itcast.day07.demo08;/** * final关键字代表最终.不可改变的 * * 常见四种用法:* ...
- java des加密解密_Java实现的DES加密解密工具类实例
本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...
- [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义...
前言简介 class文件是源代码经过编译后的一种平台中立的格式 里面包含了虚拟机运行所需要的所有信息,相当于 JVM的机器语言 JVM全称是Java Virtual Machine ,既然是虚拟机, ...
- 不能执行autowired_想用@Autowired注入static静态成员?官方不推荐你却还偏要这么做...
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- java junit 怎么写_java-如何确定代码是否在JUnit测试内运行?
java-如何确定代码是否在JUnit测试内运行? 在我的代码中,仅当它在JUnit测试中运行时,才需要进行某些修复. 如何确定代码是否在JUnit测试中运行? 是否有类似JUnit.isRunnin ...
- java junit 怎么写_使用JUnit测试java代码
标签: Junit 单元测试实验报告 一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的 ...
- Junit 测试时内存溢出解决办法
今天在写Junit测试时出现java.lang.OutOfMemory错误,原因:由于启动测试是要加载的xml配置文件过多,导致内存溢出.解决方法如下:选中测试文件,右键Run as --->R ...
- springboot junit测试时环境变量问题 idea
背景 在写一个springboot + redis + mybatis + shiro + websocket项目时,因为曾经一不小心把密码推送到了github上因此痛定思痛把重要信息例如密码和服务器 ...
- junit可执行但控制层无法执行_Junit测试时ContextLoader.getCurrentWebApplicationContext()返回空值...
Junit测试时,test类调用manage类,manage类调用dao类 dao类的代码中有如下语句:ContextLoader.getCurrentWebApplicationContext() ...
最新文章
- 19福师计算机应用基础在线作业一答案,2019秋福师《计算机应用基础》在线作业一16(100分)...
- 甲骨文指控 Google Android 复制其代码
- Python 函数详解
- mysql 代码结构_MySQL代码执行结构
- pytorch损失函数(正在更新中,勿点进来看)
- 奇安信代码安全实验室帮助微软修复多个高危漏洞,获官方致谢
- python基础入门笔记_Python基础入门笔记:函数
- 实战:基于Node的控制台记事本开发
- 以太坊执行层P2P网络架构与设计:Discv5
- 阿里云服务器被攻击了怎么办?
- 营销:uplift模型
- 传递给Appium服务器以开启相应安卓Automation会话的Capabilities的几点说明
- 人工智能基础——知识的表示方法,语义网络表示方法
- 软件测试工程师简历要怎么写,才能让 HR 看到?
- 怎么用python画螺旋_用Python tu绘制螺旋
- 云耀云服务器和弹性云服务器有哪些区别?
- 英语作文计算机国际会议开幕词,学术会议发言稿 英文(精选多篇)
- 基于Contiki OS的智能led照明:LIFX
- 吹爆的一种深度拷贝方式
- Linux的网络测试命令(转载)
热门文章
- 60.extjs-布局 (在column布局中使用fieldset 和 在fieldset中使用column布局)
- 《Nmap渗透测试指南》—第2章2.2节使用Zenmap进行扫描
- 研究Mysql优化得出一些建设性的方案
- Tengine+LUA+Nginx-GridFS+jemalloc编译安装
- $(document).ready(); $().ready(); $()
- Linux 下如何处理包含空格和特殊字符的文件名
- Linux技巧:自动挂载UDF光盘的技巧
- Android中的AsyncTask异步任务的简单实例
- TCP/IP 学习 --- 2
- Head First HTML与CSS阅读笔记(二)