踩坑半天多,终于在网上寻觅到了解决方案,特此分享一下。

重要前提: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注入的类实例始终为空怎么解?相关推荐

  1. java类方法不写权限就时default_Day11_final、权限、内部类

    <Java自学180天笔记> final关键字概念 package cn.itcast.day07.demo08;/** * final关键字代表最终.不可改变的 * * 常见四种用法:* ...

  2. java des加密解密_Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import ...

  3. [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义...

    前言简介 class文件是源代码经过编译后的一种平台中立的格式 里面包含了虚拟机运行所需要的所有信息,相当于 JVM的机器语言 JVM全称是Java Virtual Machine  ,既然是虚拟机, ...

  4. 不能执行autowired_想用@Autowired注入static静态成员?官方不推荐你却还偏要这么做...

    生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...

  5. java junit 怎么写_java-如何确定代码是否在JUnit测试内运行?

    java-如何确定代码是否在JUnit测试内运行? 在我的代码中,仅当它在JUnit测试中运行时,才需要进行某些修复. 如何确定代码是否在JUnit测试中运行? 是否有类似JUnit.isRunnin ...

  6. java junit 怎么写_使用JUnit测试java代码

    标签: Junit 单元测试实验报告 一.实验环境 MyEclipse2014.Junit4.10 二.实验目的 学会单元测试,在MyEclipse中进行Junit测试 三.实验步骤 1.写出要测试的 ...

  7. Junit 测试时内存溢出解决办法

    今天在写Junit测试时出现java.lang.OutOfMemory错误,原因:由于启动测试是要加载的xml配置文件过多,导致内存溢出.解决方法如下:选中测试文件,右键Run as --->R ...

  8. springboot junit测试时环境变量问题 idea

    背景 在写一个springboot + redis + mybatis + shiro + websocket项目时,因为曾经一不小心把密码推送到了github上因此痛定思痛把重要信息例如密码和服务器 ...

  9. junit可执行但控制层无法执行_Junit测试时ContextLoader.getCurrentWebApplicationContext()返回空值...

    Junit测试时,test类调用manage类,manage类调用dao类 dao类的代码中有如下语句:ContextLoader.getCurrentWebApplicationContext() ...

最新文章

  1. 19福师计算机应用基础在线作业一答案,2019秋福师《计算机应用基础》在线作业一16(100分)...
  2. 甲骨文指控 Google Android 复制其代码
  3. Python 函数详解
  4. mysql 代码结构_MySQL代码执行结构
  5. pytorch损失函数(正在更新中,勿点进来看)
  6. 奇安信代码安全实验室帮助微软修复多个高危漏洞,获官方致谢
  7. python基础入门笔记_Python基础入门笔记:函数
  8. 实战:基于Node的控制台记事本开发
  9. 以太坊执行层P2P网络架构与设计:Discv5
  10. 阿里云服务器被攻击了怎么办?
  11. 营销:uplift模型
  12. 传递给Appium服务器以开启相应安卓Automation会话的Capabilities的几点说明
  13. 人工智能基础——知识的表示方法,语义网络表示方法
  14. 软件测试工程师简历要怎么写,才能让 HR 看到?
  15. 怎么用python画螺旋_用Python tu绘制螺旋
  16. 云耀云服务器和弹性云服务器有哪些区别?
  17. 英语作文计算机国际会议开幕词,学术会议发言稿 英文(精选多篇)
  18. 基于Contiki OS的智能led照明:LIFX
  19. 吹爆的一种深度拷贝方式
  20. Linux的网络测试命令(转载)

热门文章

  1. 60.extjs-布局 (在column布局中使用fieldset 和 在fieldset中使用column布局)
  2. 《Nmap渗透测试指南》—第2章2.2节使用Zenmap进行扫描
  3. 研究Mysql优化得出一些建设性的方案
  4. Tengine+LUA+Nginx-GridFS+jemalloc编译安装
  5. $(document).ready(); $().ready(); $()
  6. Linux 下如何处理包含空格和特殊字符的文件名
  7. Linux技巧:自动挂载UDF光盘的技巧
  8. Android中的AsyncTask异步任务的简单实例
  9. TCP/IP 学习 --- 2
  10. Head First HTML与CSS阅读笔记(二)