• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Junit單元測試工具快速入門

    標簽: Junit單元測試工具  單元測試和集成測試  Junit快捷鍵自動生成Test類

    前言:Junit是單元測試工具,在項目開發中是經常用到的,比如SSM項目中在編寫好每一個 Dao 的時候,我們都需要對它進行單元測試。我們使用Junit進行單元測試的話不需要啟動Tomcat運行整個SSM項目,只需要測試能不能正確從數據庫中取出數據就行,這樣減少了啟動Tomcat的時間從而提高了開發效率。利用JUnit4進行單元測試非常簡單方便,所以熟悉Junit是很有必要的。

    一、單元測試和集成測試

    1、單元測試(unit testing)

    單元測試是指對軟件中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。總的來說,單元就是人為規定的最小的被測功能模塊。單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。

    2、集成測試(mixed testing)

    集成測試,也叫組裝測試或聯合測試。在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖)組裝成為子系統或系統,進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常的工作。一些局部反映不出來的問題,在全局上很可能暴露出來。

    二、JUnit單元測試工具

    JUnit是一個Java語言的單元測試框架,用于編寫和運行可重復的測試。多數Java的開發環境都已經集成了JUnit作為單元測試的工具,目前版本為JUnit4SSM項目中在編寫好每一個 Dao 的時候,我們都需要對它進行單元測試。

    為什么要用單元測試?

    引用網上的IntelliJ IDEA快速自動生成Junit測試類的話:

    之前在寫業務邏輯的時候,都很少有寫單元測試。因公司項目用的分布式架構,將整個系統抽成了很多微服務。測試一個接口,需要啟動好幾個服務,才能進行測試。并且有時候,我們只是改了一點代碼,并不需要全部啟動,太耗時,這個時候,就可以編寫單元測試,簡單的測試一下我們的代碼。
    單元測試是開發者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。

    三、Maven工程中使用JUnit

    1、pom.xml默認已經添加了junit依賴,我們只需在src目錄下創建test文件夾

      <!-- 添加junit4依賴 -->
      <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.12</version>
           <!-- 指定范圍,在測試時才會加載 -->
           <scope>test</scope>
      </dependency>

    src目錄下創建test文件夾,并右鍵點擊test文件夾,選擇Mark Directory As選項為Test Sources Root,會發現test文件夾變為綠色,用于放置自動生成的測試類。

    2、利用JUnit測試一下前面SSM項目的UserService和UserDao類

    a、利用快捷鍵ctrl+shift+tb自動生成Junit測試類,我們會發現test目錄下自動生成了UserServiceTest類

    在要生成測試類的UserService類里面,按快捷鍵ctrl+shift+t選擇 create new test

    或者將鼠標光標放到要生成測試類的類名或者方法名上面,按ctrl + enter –> create test

    b、Testing library 選擇 JUnit4,勾選需要測試的方法。

    c、上面只是幫我們自動創建了測試類,還需要我們編寫測試用例代碼,UserServiceTest.java代碼如下:

    package com.hs.service;
    
    import com.alibaba.fastjson.JSON;
    import com.hs.dao.entity.UserEntity;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import javax.annotation.Resource;
    
    /**
     * 用戶服務測試類
     */
    @RunWith(SpringJUnit4ClassRunner.class)  //表示繼承了SpringJUnit4ClassRunner類
    @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})//classpath就是代表編譯后的 /WEB-INF /classes/ 這個路徑
    public class UserServiceTest {
        @Resource
        private UserService userService;
    
        @Test
        public void testCreateUser() throws Exception {
            UserEntity userEntity = new UserEntity();
            userEntity.setUsername("root");
            userEntity.setPassword("root");
            userService.createUser(userEntity);
            System.out.println(JSON.toJSONString(userEntity));
        }
    
        @Test
        public void testUpdateUser() throws Exception {
            UserEntity userEntity = userService.getUserById(6);
            userEntity.setPassword("root111");
            userService.updateUser(userEntity);
            userEntity = userService.getUserById(1);
            System.out.println(JSON.toJSONString(userEntity));
        }
    
        @Test
        public void testDeleteUser() throws Exception {
          //  userService.deleteUser(1);
            System.out.println("刪除成功!");
        }
    
        @Test
        public void testGetUserById() throws Exception {
            UserEntity userEntity = userService.getUserById(1);
            System.out.println(JSON.toJSONString(userEntity));
        }
    }

    d、開始進行測試,我們右鍵UserServiceTest.java選擇Run UserServiceTest

    測試用例
    測試用例

    運行測試用例后,我們可以查看測試結果:綠色表示用例通過紅色則表示用例未通過,可以查看報錯信息進行debug。

    數據庫如下,沒有id為6的用戶,所以上面的testUpdateUser()方法會報錯。

    版權聲明:本文為CSDN2497242041原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/CSDN2497242041/article/details/102615647

    智能推薦

    JUnit4 單元測試入門

    Hello World 此文我們通過導入jar包的形式集成Junit4, 下載路徑:鏈接:https://pan.baidu.com/s/1Khi-fMb_k3kfAOluufWcRQ 密碼:lz0i。通過eclipse新建一個Java項目后,引入jar包。需要說明的是僅引入junit-4.12是不夠的,還需要引入hamcrest-core-1.3,否則會拋出java.lang.NoClassDe...

    Junit單元測試入門與整理

    單元測試整理-分享 1. 單元測試介紹: 2. idea環境相關介紹: 3. 單元測試基本概念: 4. controller層單元測試: 5. service層單元測試 6. dao層單元測試 7. 單元測試三十六計 1. mock形式進行單元測試 2. 調用真實依賴進行單元測試 8. 注意事項: 單元測試整理-分享 PS:未完待續,持續更新中。。。 先簡單說一下為什么要寫測試用例 1. 可以避免...

    Junit單元測試

    Junit單元測試 Junit簡單介紹 定義計算器類 Junit使用說明 Junit使用(以加減法舉例) 定義測試類 測試加法...

    Unity_Shader高級篇_13.1_Unity Shader入門精要

    13.4 再談邊緣檢測 在12.3中,我們曾使用Sobel算子對屏幕圖像進行邊緣測試,實現描邊的效果。但是,這種直接利用顏色信息進行邊緣檢測的方法會產生很對我們不希望得到的邊緣線,如圖13.8所示。 可以看出,物體的紋理、陰影等位置也被描上黑邊,而這往往不是我們希望看到的。在本節中,我們將學習如何在深度和法線上進行邊緣檢測,這些圖像不會受紋理和光照的影響,而僅僅保存了當前渲染物體的模型信息,通過這...

    Seata AT 模式 原理詳解

    目錄 前提 整體機制 寫隔離 讀隔離 工作機制 一階段 二階段-回滾 二階段-提交 附錄 回滾日志表 前提 基于支持本地 ACID 事務的關系型數據庫。 Java 應用,通過 JDBC 訪問數據庫。 整體機制 兩階段提交協議的演變: 一階段:業務數據和回滾日志記錄在同一個本地事務中提交,釋放本地鎖和連接資源。 二階段: 提交異步化,非常快速地完成。 回滾通過一階段的回滾日志進行反向補償。 寫隔離 ...

    猜你喜歡

    Python爬蟲 | 滑動驗證碼**

    極驗驗證碼:需要手動拼合滑塊來完成的驗證,相對圖形驗證碼識別難度上升了幾個等級。下面用程序識別并通過極驗驗證碼的驗證,其中有分析識別思路、識別缺口位置、生成滑塊拖動、模擬實現滑塊拼合通過驗證等步驟。需要用到Chrome 瀏覽器,并配置 ChromeDriver ,要用到的 Python 庫是 Selenium。 1、 對極驗驗證碼了解   極驗驗證碼官網:http://www.geetest.co...

    MobaXterm root用戶連接虛擬機時出現Access denied

    1.linux打開ssh服務 2.新建連接 首先在romote host中填入要連接的主機ip specify username中填入連接的用戶名 port為連接端口默認為22 輸入連接用戶的密碼 linux默認不顯示密碼 發現密碼正確但是連接不上 問題解決 /etc/ssh/sshd_config 配置問題: #PermitRootLogin prohibit-password將該行改為Perm...

    Linux C 預處理命令

    預處理命令 一、宏定義 C語言標準允許在程序中用一個標識符來表示一個字符串,成為宏。標識符為宏名 ,在編譯預處理時,將程序中所有的宏名用相應的字符串來替換,這個過程稱為宏替換,宏分為兩種:無參數的宏和有參數的宏。 1.無參數的宏 無參數宏定義的一般形式為:#define 標識符字符串 “#”代表本行是編譯預處理命令。define是宏定義的關鍵詞,標識符是宏名。字符串是宏名所...

    有意思的算法(一)----冒泡排序

        冒泡排序的基本思想是:每次比較兩個相鄰的元素,如果它們的順序錯誤就把他們交換過來。     下面舉一個具體的例子來介紹一下冒泡排序。     有12,35,99,18,76五個數進行從大到小的排序,既然是從大到小排序,也就是說越小的越靠后,可不要把這句當成廢話,這可是最關...

    cordova學習筆記_創建一個cordova項目

    環境和工具 webstorm Node.js JDK git 打開git bash,進入你要創建項目的目錄,鍵入以下命令 進入cordovaDemo這個文件夾: 添加Android平臺 cordova platforms add android platforms中已經有了一個Android平臺 下面打開webstorm,然后file - open 找到cordovaDemo打開 現在在webst...

    精品国产乱码久久久久久蜜桃不卡