javascript
天呐!惊人的Springboot测试.Springboot测试类之@RunWith注解
Springboot測試類之@RunWith注解
- Springboot測試類之@RunWith注解
Springboot測試類之@RunWith注解
@runWith注解作用:
- @RunWith就是一個運行器
- @RunWith(JUnit4.class)就是指用JUnit4來運行
- @RunWith(SpringJUnit4ClassRunner.class),讓測試運行于
Spring測試環境,以便在測試開始的時候自動創建Spring的應用上下文
–@RunWith(Suite.class)的話就是一套測試集合
引申:
Spring Boot 1.5.2 Junit測試
使用 Spring 進行單元測試
方法1:【參考文獻】
如果pom.xml中有如下代碼,這行@RunWith(SpringRunner.class)就不會出現SpringRunner,反而有@RunWith(SpringJUnit4ClassRunner.class)
<!--spring-test測試=--> <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.2.4.RELEASE</version> </dependency> 如果pom.xml中沒有這段,則@RunWith(SpringRunner.class)不會報錯。如果有這段:①未注釋<scope>test</scope>會報錯;②注釋<scope>test</scope>不會報錯 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope> </dependency> 如果pom.xml中沒有這段,則會報錯。如果有這段:①未注釋<scope>test</scope>SpringRunner、SpringBootTest無法引用,會報錯;②注釋<scope>test</scope>不會報錯 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>1.5.9.RELEASE</version><scope>test</scope> </dependency>總結起來,想要使用
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
pom.xml中應該引用這兩個
方法2:【參考文獻】
如果有test@RunWith報紅,沒有test會引入該類
如果有test@SpringBootTest報紅,沒有test會引入該類
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>1.5.9.RELEASE</version><scope>test</scope> </dependency>如果是4.2.4.RELEASESpringRunner報紅,如果4.2.4.RELEASE會引入該類
org.springframework spring-test 4.2.4.RELEASE 所以最后要正確使用,需引入這些架包 <!--spring-test測試=--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.7.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>1.5.9.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>2.在IDE中新增JunitTest類
@RunWith(SpringRunner.class) //14.版本之前用的是SpringJUnit4ClassRunner.class @SpringBootTest(classes = Application.class) //1.4版本之前用的是//@SpringApplicationConfiguration(classes = Application.class) public class SystemInfoServiceImplTest {@Autowiredprivate ISystemInfoService systemInfoservice;@Testpublic void add() throws Exception {}@Testpublic void findAll() throws Exception {}}主要是注解的更改,如果注解用的不對,會報各種奇怪的問題,例如applicationContext找不到,datasource實例化失敗等等。
為了支持上面兩個注解,maven文件中要用對依賴以及版本,我當時添加SpringRunner.class所在的依賴jar時,由于用了idea的auto-imported,IDE自動導入了版本是3.x的,實際應該導入4.x,我一直以為idea導入的是正確的,導致在這上面費時頗多,后來我手工寫入就解決了。下面是正確的spring boot test的maven依賴。
【參考文獻】
總結
以上是生活随笔為你收集整理的天呐!惊人的Springboot测试.Springboot测试类之@RunWith注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vb.net学习日记3.29
- 下一篇: 利用DirectShow开发C#版的MP