欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Spring整合Junit怎么用-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Spring整合Junit怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Spring整合Junit怎么用”這篇文章吧。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)許昌免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

我們?cè)诰帉懲闟pring的代碼后,往往需要測(cè)試代碼的正確性,這個(gè)時(shí)候就需要用到單元測(cè)試了。我們這里使用的版本是junit4.

一個(gè)程序的入口是main方法,但是junit中不存在main方法,是因?yàn)閖unit內(nèi)部的原理是它自己內(nèi)部就有個(gè)main方法,運(yùn)行掃描帶@Test注解的方法,然后反射調(diào)用該方法,完成測(cè)試。

調(diào)用Spring框架的測(cè)試代碼:

@Test  public void function(){    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");    AccountDao accountDao1 = applicationContext.getBean("AccountDao", AccountDao.class);    accountDao1.findAll();  }

我們發(fā)現(xiàn)這只是查詢,還有增刪改方法沒有測(cè)試,但是這幾個(gè)測(cè)試都有重復(fù)代碼塊,我們應(yīng)該把它們抽取出來

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");    AccountDao accountDao1 = applicationContext.getBean("AccountDao", AccountDao.class);

我們可以在外面定義一個(gè)全局變量,用來存儲(chǔ)accountDao的值,并且通過@Autowired注解實(shí)現(xiàn)注入對(duì)象,這樣每個(gè)方法就都可以使用它了.

@Autowiredprivate AccountDao accountDao;

但是這樣運(yùn)行之后會(huì)爆出空指針異常!!!

這是因?yàn)镴unit默認(rèn)是不認(rèn)識(shí)Spring框架的,所以它內(nèi)部沒有IOC容器,這樣就算你有@Autowired這個(gè)注解,它也不知道從哪里注入數(shù)據(jù),所以就會(huì)有這個(gè)異常。

問題原因分析出來后,我們就想,能不能自己提供一個(gè)IOC容器呢,即

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean.xml");

往往在現(xiàn)實(shí)開發(fā)中,軟件開發(fā)和軟件測(cè)試是兩個(gè)職位,上述代碼如果是開發(fā)編寫的話,往往沒什么問題。但測(cè)試人員可能會(huì)不懂Spring的代碼,所以需要另外一種辦法,好在Spring為我們提供了整合Junit的使用。

首先引入Spring-test的jar坐標(biāo)

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.1.5.RELEASE</version> <scope>test</scope> </dependency>

Spring給我們提供了一個(gè)main方法,這個(gè)main方法支持Spring框架,我們用這個(gè)main替換Junit的main方法。

@RunWith(SpringJUnit4ClassRunner.class)

在類上加上這個(gè)注解,@Runwith代表要替換的運(yùn)行器,后面在字節(jié)碼參數(shù)

告訴Spring配置文件/配置類的位置

@ContextConfiguration(locations = "classpath:bean.xml")

使用Contextfiguration注解可以完成該功能,locations表示配置文件的位置,加上classpath表示類路徑。

至此整合結(jié)束,測(cè)試方法直接使用既可,但是這里有個(gè)版本問題,如果你使用的是Spring5.0以上的話,你的Junit版本必須是4.12以上!!!

不然會(huì)曝出

java.lang.ExceptionInInitializerErrorat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

這個(gè)錯(cuò)誤

改完版本就可以正常運(yùn)行測(cè)試方法了。

以上是“Spring整合Junit怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:Spring整合Junit怎么用-創(chuàng)新互聯(lián)
鏈接分享:http://chinadenli.net/article14/eoege.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)網(wǎng)站改版網(wǎng)站營(yíng)銷微信公眾號(hào)動(dòng)態(tài)網(wǎng)站移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站