1. 程式人生 > >maven中的junit測試

maven中的junit測試

maven倡導約定優於配置,而maven的約定目錄結構為:

   src/main/java 下存放java類

   src/main/webapp 下存放頁面檔案(需要手動建立)

   src/main/resources 下存放資原始檔

   src/test/java 下存放單元測試程式碼

   src/test/resources 下存放測試資原始檔 

maven執行的生命週期為:

   複製src/main/resources資原始檔到輸出目錄

   編譯src/main/java下的原始碼

   複製src/test/resources下的測試用資原始檔到測試輸出目錄

   編譯src/test/java下的測試用例

   執行測試用例

   打包生成

預設情況下,maven集成了maven-surefire-plugin外掛,該外掛會去查詢src/test/java下所有包含Test的類作為測試類,測試類會去src/test/resources下查詢測試資源。我們只需在測試方法上使用@Test註解,那麼測試就順理成章了。但是spring junit測試時,經常出現註解未掃描到註解的情況,例如:

package com.student.system.service.user;

import javax.annotation.Resource;
import org.junit.Test;
import com.student.system.entity.user.TUser;


public class TestUserService {
	
	@Resource
	private UserService userService;
	
	@Test
	public void findUserById(){
		TUser user =userService.findUserById("123");
		System.out.println(user.toString());
	}

}

會出現空指標異常,具體原因我也未找到,如果有人知道請留言告訴我。我將測試資源是放在了src/test/resources下的。

我們可以使用spring-junit包來提供對配置檔案的支援來彌補上面的缺陷,這樣就不需要在src/test/resources下再存放資原始檔了。使用這種方法需要如下步驟:

1.使用@RunWith註解來實現SpringJUnit4ClassRunner.class來替換junit預設的執行類Suite

   @RunWith(SpringJUnit4ClassRunner.class)

2.指定Spring配置檔案的位置

   @ContextConfiguration(locations={"classpath:applicationContext.xml",

"classpath:applicationContext-security.xml","file:src/main/webapp/WEB-INF/servlet.xml"})

   這裡提供了2中路徑的寫法,一種是classpath,這種方式是去src/main/resources下查詢資原始檔。另一種file:是從專案根目錄下查詢指定的路徑檔案。

例如:

package com.student.system.service.user;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.student.system.entity.user.TUser;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class TestUserService {
	
	@Resource
	private UserService userService;
	
	@Test
	public void findUserById(){
		TUser user =userService.findUserById("123");
		System.out.println(user.toString());
	}

}

相關推薦

javaJunit測試

可能 boolean border add 判斷 數組 環境 字符串 出現 java中Junit測試 問題一:JUnit中什麽時候使用assertTrue,assertFalse語句 assertTrue(boolean condition);condition:如果con

springJunit測試出錯

java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.DefaultCacheAwareContex

Mavenjunit打包問題

1.scope標籤的作用 <!-- 新增junit單元測試包 --> <dependency> <groupId>junit</groupId> <artif

配置ssm—maven專案junit測試

一 引入的相關jar包 <properties> <slf4j.version>1.6.1</slf4j.version> <spring.version>4.0.2.RELEASE</sp

Maven執行JUnit測試之mvn test的預設行為

       因此預設情況下,諸如“add_exist_department.java”或者“add_exist_departmentTests.java”這種JUnit類是不會被Maven發現並執行的,可按如下修改surefire外掛的配置以達到包含"**/*Tests.java"測試類的目的:

整理不易,且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼 7.spring與mybatis整合Junit測試 8.maven專案的啟動 9.Restful

整理不易,且整且珍惜 2.開發環境的搭建 3.Eclipse的相關配置 4.使用maven建立web專案 5.Spring+Mybatis+SpringMVC整合 6.mybatis自動生成程式碼

mavenjunit測試

maven倡導約定優於配置,而maven的約定目錄結構為:    src/main/java 下存放java類    src/main/webapp 下存放頁面檔案(需要手動建立)    src/main/resources 下存放資原始檔    src/test/java

maven進行junit測試報class not found的問題

初接觸maven,maven的路徑和常規的eclipse專案不是很一樣,java檔案放在src/main/java目錄下,test檔案放在src/test/java目錄下,常規的測試方式是使用mvn test進行單元測試,但是使用eclipse習慣了,直接在IDE中進行測試

搭建項目Maven+springMVC+hibernate時,JUnit測試出現報ClassNotFoundException錯誤的解決

== exception net sso data found exc blog mta 近期在搭建Maven+springMVC+hibernate項目,正常啟動項目時一切正常。但JUNIT測試時出現報ClassNotFoundException錯

Junit測試如何調用Http通信

soft size framework pan font auto 測試 mock unit 在使用Junit做測試的時候,有時候需要調用Http通信,無論是request還是response或者是session會話,那麽在測試類裏該如何調用呢,其實很簡單,spring給我

軟件測試Junit的配置和使用

出現 ide image oot 點擊 roo 快捷鍵 gpo IT 我使用的工具是IDEA,因此配置Junit直接在Setting中下載並使用這兩個插件即可 Junit的使用: 1. 在目標代碼的src文件夾的同級創建一個新的文件夾,作為Testroot文件夾,

junit測試和main方法多執行緒遇到的問題

利用Junit測試多執行緒時經常遇到任務執行不完就會停止,下面是我的任務執行緒類: package timerTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i

Spring+MyBatis 在Junit測試需要注意的細節

    在Spring+MyBatis框架下Junit測試時如果直接@Autowired ServiceImpl service 的話會報錯:nullpointerexception; 需要在類上添加註解 @RunWith(SpringJUnit4Clas

Junit單元測試+aop+spring+執行緒池,在進行Junit測試時切面執行緒池內呼叫的方法不執行

一、問題背景: 寫了一個切面,指向某service包下的所有類及方法,當該service包下方法被呼叫時切面執行,切面中用了執行緒池ExecutorService pool = Executors.newFixedThreadPool(5);執行緒池內呼叫了dao層的方法。 二、問題描述:單

ssm進行junit測試

1.加入maven依賴 <!-- 單元測試 --> <dependency> <groupId>junit</groupId> <

SpringBoot整合mybatis,及SpringBootjunit測試

1、pom檔案中引入mybatis依賴:mybatis-spring-boot-starter 和mysql驅動依賴:mysql-connector-java,以及spring-boot-starter-test依賴用於junit測試        

Maven學習三 使用junit測試maven project

                     每個開發人員都會對自己的程式碼進行自定義的測試,可以是把專案run起來,手動點點頁面按鈕,看看操作場景和步驟點是否符合業務需要,是否存在UE上的問題。也有自己寫幾個測試類,把service類的輸入輸出是否符合標準都測試一番,這兩大類,其實就是包括了前後端的測試工作,分

【詳】Maven解決jar衝突方案(親身測試)

Maven開發中jar衝突最令人頭疼: [INFO] Scanning for projects... [ERROR] [ERROR] Some problems were encountered while processing the POMs: [WARNING] 'depen

maven構建時 跳過 測試階段構建生命週期的命令調整

Maven中-DskipTests和-Dmaven.test.skip=true的區別 在使用mvn package進行編譯、打包時,Maven會執行src/test/java中的JUnit測試用例,有時為了跳過測試,會使用引數-DskipTests和-Dmaven.test.skip=true

maven專案管理器,Junit測試單元以及C3P0資料庫連線池的會用總結

最近剛好連續學習了maven專案管理器,Junit測試單元以及C3P0資料庫連線池的使用,現將學習工程中遇到的問題與注意點總結如下: 1.maven專案管理器 maven是一種很好用的專案管理器,在開發工具中建立一個maven專案,它會自動生成各種目錄,有專門存放java