Java Web(5) Spring 下使用Junit4 单元测试
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1. 如何在不啟動(dòng)Tomcat服務(wù)器的情況下對,Dao這些不依賴使用Servlet API的類來進(jìn)行單元測試呢?
????其實(shí)在Spring框架體系中,已經(jīng)有一套自己的測試代碼,其中就是依賴使用Junit來進(jìn)行測試 ,不需要啟動(dòng)Tomcat就可以對Dao來進(jìn)行測試。
????至于什么是Junit呢,參見Junit。
2. 首先的第一步,就是添加依賴的類庫,這里就需要再一次使用到神器Maven了,在pom.xml中添加
<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.2.2.RELEASE</version> </dependency> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope> </dependency>????在這里,需要注意一下,spring版本與Junit版本的兼容問題。前面我使用Spring是4.2.2的,在官方的文檔中講到
NOTE: As of Spring Framework 4.1, this class requires JUnit 4.9 or higher.
????所以我使用了Junit 4.9 以上,否則運(yùn)行JunitCase會(huì)拋異常
3. 編寫TestCase
package?test;import?java.util.Iterator; import?java.util.List; import?org.junit.Test; import?org.springframework.beans.factory.annotation.Autowired; import?cn.tian.dao.*; import?cn.tian.vo.*; import?org.junit.runner.RunWith; import?org.springframework.test.context.ContextConfiguration; import?org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; import?org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import?org.springframework.transaction.annotation.Transactional; //首先指定Junit的Runner @RunWith(SpringJUnit4ClassRunner.class) //指明配置文件所在 @ContextConfiguration(locations="classpath:applicationContext.xml") //指定事務(wù)管理器 @Transactional(transactionManager="transactionManager") //繼承AbstractTransactionalJUnit4SpringContextTests來獲取Spring上下文環(huán)境來獲取Bean public?class?UserDaoTest?extends?AbstractTransactionalJUnit4SpringContextTests{//spring依賴注入@Autowiredprivate?UserDao?dao;//JUnit注解?,表明這是一個(gè)需要運(yùn)行的測試方法@Testpublic?void?test(){User?admin?=?new?User();admin.setName("管理員"); dao.insert(user); } }????就這樣簡單,就可以輕松布置JUnit的測試環(huán)境了
?
4. 補(bǔ)充:如果在Web項(xiàng)目中配置有bean 的scope為“application”的時(shí)候,運(yùn)行測試會(huì)顯示Spring Context初始化錯(cuò)誤。需要在添加一個(gè)注解@WebAppConfiguration,把WebApplicationContext加載上來,就解決了
?
轉(zhuǎn)載于:https://my.oschina.net/asd1614/blog/530528
總結(jié)
以上是生活随笔為你收集整理的Java Web(5) Spring 下使用Junit4 单元测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkStreaming入门及例子
- 下一篇: 滴滴快车奖励政策,高峰奖励,翻倍奖励,按