@RunWith(SpringJUnit4ClassRunner.class)報錯問題及解決
@RunWith(SpringJUnit4ClassRunner.class)報錯
1、查看Spring整合Junit測試時需要的jar包.是否加載進來,如果沒有需要重新加載
2、如果spring-test-3.2.0.RELEASE.jar已經(jīng)導入進來,還會出錯,看是否導入一下兩個類包的接口
我的改完后已經(jīng)不再出現(xiàn)錯誤
@RunWith和 SpringJUnit4ClassRunner-->junit4和Spring一起使用
今天在看Spring的Demo的時候,看到了如此單元測試的寫法
如下:
@RunWIth(SpringJunit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"} public ?class MyTest { @Test public void hehe() { //....... } }
這種寫法是為了讓測試在Spring容器環(huán)境下執(zhí)行。
Spring的容器環(huán)境是啥呢?
比如常見的 Service Dao Action , 這些個東西,都在Spring容器里,junit需要將他們拿到,并且使用來測試。
好,筆者寫一個十分簡單的demo讓大家有個體會!
顯示demo的項目結構
要寫的東西就兩個 applicationContext.xml 和MyTest.java
applicationContext.xml 中僅僅只定義了一個Date對象。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="date" class="java.util.Date"/> </beans>
接下來是MyTest.java的內(nèi)容
import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import javax.annotation.Resource; import java.util.Date; /** * Created by HuLuo on 2016/8/19. */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class MyTest { @Resource Date date; @Test public void hehe() { System.out.println(date.toLocaleString()); } }
最后只需要運行就可以了。
最后如圖所示,成功拿到了Spring容器里的Date對象。
諸如哪些 Action Service Dao ServiceImpl DaoImpl都是一個道理,可以通過這種方式拿到,然后進行單元測試。。。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring?Boot?Nacos?實現(xiàn)不停服發(fā)布過程詳解
這篇文章主要為大家介紹了Spring?Boot?Nacos實現(xiàn)不停服發(fā)布過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05Spring?Boot自動配置的原理及@Conditional條件注解
這篇文章主要介紹了Spring?Boot自動配置的原理及@Conditional條件注解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的朋友可以參考一下2022-07-07解決httpServletRequest.getParameter獲取不到參數(shù)的問題
這篇文章主要介紹了解決httpServletRequest.getParameter獲取不到參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07詳談ThreadLocal-單例模式下高并發(fā)線程安全
這篇文章主要介紹了ThreadLocal-單例模式下高并發(fā)線程安全,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09