拋出問題
1、應用程序的入口
main方法
2、junit單元測試中,沒有main方法也能執行
junit集成了一個main方法
該方法就會判斷當前測試類中有哪些@Test注解
junit就讓有Test注解的方法執行
3、junit不會管我們是否采用spring框架
在執行測試方法時,junit根本不知道我們是不是使用了spring框架
所以也就不會為我們讀取配置文件/配置類創建spring核心容器
4、由以上三點可知
當測試方法執行時,沒有Ioc容器,就算寫了Autowired注解,也無法實現注入
解決——Spring整合junit
1.導入spring整合junit的jar(坐標)

2.使用Junit提供的一個注解把原有的main方法替換了,替換成spring提供的@RunWith注解
3.告知spring的運行器,spring和ioc創建時基於xml還是注解的,並且說明位置
@ContextConfiguration
locations:指定xml文件的位置,加上classpath關鍵字,表示在類路徑下
classes:指定注解類所在地位置
3.告知spring的運行器,spring和ioc創建時基於xml還是注解的,並且說明位置
@ContextConfiguration
locations:指定xml文件的位置,加上classpath關鍵字,表示在類路徑下
classes:指定注解類所在地位置
細節:當我們使用spring5.x版本時,要求junit的jar必須是4.12及以上
@RunWith(SpringJunit4ClassRunner.class)
@ContextConfiguration([location=……][classes=……])
public class Aclass{
@Autowired
private IAclass as=null;
@Test
public void test1(){
方法體
}
@Test
public void test2(){
方法體
}
……
……
private IAclass as=null;
@Test
public void test1(){
方法體
}
@Test
public void test2(){
方法體
}
……
……
}