Java Web(5) Spring 下使用Junit4 单元测试
2019獨角獸企業重金招聘Python工程師標準>>>
1. 如何在不啟動Tomcat服務器的情況下對,Dao這些不依賴使用Servlet API的類來進行單元測試呢?
????其實在Spring框架體系中,已經有一套自己的測試代碼,其中就是依賴使用Junit來進行測試 ,不需要啟動Tomcat就可以對Dao來進行測試。
????至于什么是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 以上,否則運行JunitCase會拋異常
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") //指定事務管理器 @Transactional(transactionManager="transactionManager") //繼承AbstractTransactionalJUnit4SpringContextTests來獲取Spring上下文環境來獲取Bean public?class?UserDaoTest?extends?AbstractTransactionalJUnit4SpringContextTests{//spring依賴注入@Autowiredprivate?UserDao?dao;//JUnit注解?,表明這是一個需要運行的測試方法@Testpublic?void?test(){User?admin?=?new?User();admin.setName("管理員"); dao.insert(user); } }????就這樣簡單,就可以輕松布置JUnit的測試環境了
?
4. 補充:如果在Web項目中配置有bean 的scope為“application”的時候,運行測試會顯示Spring Context初始化錯誤。需要在添加一個注解@WebAppConfiguration,把WebApplicationContext加載上來,就解決了
?
轉載于:https://my.oschina.net/asd1614/blog/530528
總結
以上是生活随笔為你收集整理的Java Web(5) Spring 下使用Junit4 单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkStreaming入门及例子
- 下一篇: 滴滴快车奖励政策,高峰奖励,翻倍奖励,按