1. 程式人生 > >java junit測試,註解引入service報錯解決辦法

java junit測試,註解引入service報錯解決辦法

作為程式設計師,搞後端開發,當然離不開單元測試了。舉個例子,測試下mapper介面,service介面等等。

當用到spring容器的時候,在測試類直接寫 如下程式碼:

 @Autowired
    private AccountService accountServiceImpl;

當執行測試程式碼的時候,控制檯會報錯,提示:accountServiceImpl注入為空,到這裡,很多人都會感到不可思議,明明自己代

碼沒寫錯,又跑回去檢查配置檔案,也是沒問題,然後就束手無策了。

其實,道理是這樣的。因為我們的accountServiceImpl是被spring容器託管的,容器沒有載入到測試類,怎麼會識別測試介面呢。

只需要這樣改一下就可以了:

首先引入jar包

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

然後:在測試類里加上這樣的註解:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/application-*.xml"})
public class accountServiceImplTest {
    @Autowired
    private AccountService accountServiceImpl;
}

但是:這樣的話我們每個測試類都要重複寫一遍,可以這樣改一下,寫一個基礎的類,加上註解,然後我們其他的測試類直接偶從基礎類繼承就可以了。

package com.wct.shop.basic;

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

/**
 * @author :cijiancao
 * @version :1.0.0
 * @Date :2018/3/6 18:53
 * @Description :
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/application-*.xml"})
public class TestBasic {
}
好了,這樣就可以開心的測試了,再也不會報沒有注入的錯誤了。

相關推薦

java junit測試註解引入service解決辦法

作為程式設計師,搞後端開發,當然離不開單元測試了。舉個例子,測試下mapper介面,service介面等等。當用到spring容器的時候,在測試類直接寫 如下程式碼: @Autowired private AccountService accountServiceIm

Project xxx is missing required source folder: 'src/main/resources' 問題maven管理工程解決辦法

問題描述: Project xxx is missing required source folder: 'src/main/resources'   原因 : 開發環境中,eclipse.project檔案可能存在對缺失資料夾的引用,但是project中已經沒有了該資料

AFNetworking升級至3.1.0後原有的方法解決辦法

為了配合蘋果官方的ipv6的事,有很多開發人員都把AFNetworking升級了(網路請求自己公司做封裝的除外),但是升級後報錯一堆。怎麼辦?我的笨辦法是:一個一個修改。 1.首先:沒有了AFHTTPRequestOperationManager這個類,被AF

從富文字編輯器獲取html內容組裝json特殊字元引起解決辦法

最近專案需要,需要從富文字編輯器獲取html內容組裝json,然後還要 把組裝後的json物件利用json2轉成json字串,資料放入編輯器提交,由於相容ie8以上瀏覽器。所以搞了好久的特殊字元轉義,

Junit 單元測試@Test註解的方法Annotations are not allowed here

問題描述:        Annotations are not allowed here ​​​​​​​       使用IDEA開發的時候,單元測試如果不使用IDE提供的方式建立,而是自己手動建立的話,會報這

使用cmd執行Java中文問號Python列印直接的原因和解決

Python列印報錯的一個原因 當使用Python寫程式碼出現中文時,若只是亂碼那還好處理,開頭加 #-*- coding=utf-8 -*- 並且所有編碼一致,網上有很多案例。 有一天我在整一個線上寫爬蟲程式碼的專案時,建立Python專案並書寫程式碼使用cmd執行時,列印中

Maven 本地倉庫明明有jar包pom文件還是解決辦法

lips rep win 選擇 class osi 方案 pom nbsp 方法一: 找到出錯的jar包文件位置,刪掉_maven.repositories文件 方法二: maven中的本地倉庫的index索引沒有更新導致 解決方案:

建立的maven專案pom.xml檔案解決方法

eclipse建立的maven專案,pom.xml檔案報錯解決方法 【錯誤原因一:】maven 編譯級別過低 【解決辦法:】 使用 maven-compiler-plugin 將 maven 編譯級別改為 jdk1.6 以上: <!-- java編譯外掛

mybatis解決辦法 :Result Maps collection does not contain value for java.lang.String

錯誤 java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.String at org.apache.ibatis.session.Configura

Oracle資料庫安裝+漢化版PLsql+Oracle外掛plsql連線Oracle步驟和解決辦法

    從https://download.csdn.net/download/fxiaoyaole/10449523 此連結下載裡面有所資源,資源包括(Oracle兩個資料庫壓縮包win64_11gR2_database_1of2, win64_11gR2_database

maven web專案pom.xml檔案頭部解決辦法親測有效。

建立maven web工程之後會出現如下的錯誤,在pom.xml檔案頭部 有以下的錯誤 這個錯誤的直接原因是:缺少依賴包引起的, 網上大多是方法是:找到沒有下載完全的依賴包,然後右鍵專案–>Maven–>Update Project即可,讓工程重新自動下載

Bootstrap安裝過程中chrome控制檯解決辦法

今天初次使用Bootstrap,安裝好所有預設的樣式以及JS檔案,執行之後發現Chrome控制檯報錯Uncaught TypeError: Cannot read property 'fn' of undefined  1 <!DOCTYPE html> 2 <html

eclipse匯入maven專案pom檔案解決辦法

Project build error: Non-resolvable parent POM for com.example:demo:0.0.1-SNAPSHOT: Failure to transfer org.springframework.boot:sprin

Maven 本地倉庫明明有jar包但是pom檔案還是解決辦法

方法一 找到出錯的jar包檔案位置,刪掉_maven.repositories檔案 (或用文字編輯器開啟,將“>XX=”改為“>=”,即刪除main,當然main也可能是其他值) ,然

java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap解決辦法

在編寫Servlet中實現表單值自動填充的程式中,出現了-500 java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap報錯,究其原因就是在commons-collection-4

RedisTemplate執行lua指令碼叢集模式下解決

redis叢集配置: 在使用spring的RedisTemplate執行lua指令碼時,報錯EvalSha is not supported in cluster environment,不支援cluster。 程式碼: @Test public

Maven專案引入私服jar解決辦法

有時候maven專案需要引入特有的私服jar包,這樣的jar需要再maven本地倉庫先建立對應的資料夾儲存jar,然後再pom中指定路徑進行引入。如下在maven倉庫建立資料夾如果你執行了各種update project之後,還是出現報錯的情況,那麼以下方法或許適用1、修改其

Idea中重建maven模塊dependencies引入為空的解決辦法

mage dep idea 開發 除了 項目 問題 http 解決辦法 使用idea開發Maven項目時, Maven項目中有些模塊被刪除了,重新加入相同名字的模塊時,dependencies為空 如下圖 正常引進的項目,dependencies應如下 解決辦法:

無法匯入 configparser模組import configparser解決辦法

在Python2下,需要大寫:import  ConfigParser 在PYthon3下,需要小寫:import   configparser 如果不是以上原因,其他解決辦法: 1、新增環境變數     把python相關資料夾,python資料夾,scripts資料

Idea中重建maven模組dependencies引入為空的解決辦法

無意中發現,使用idea開發Maven專案時, Maven專案中有些模組被刪除了,重新加入相同名字的模組時,dependencies為空 如下圖 正常引進的專案,dependencies應如下 解決辦法: idea會預設刪除的模組不再用,所以將刪除模組的