国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

這篇具有很好參考價值的文章主要介紹了【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:
大家好,我是良辰丫,在上一篇文章中我們學(xué)習(xí)了MyBatis簡單的查詢操作,今天來介紹一下Spring Boot(SSM)的一種單元測試,有人可能會感到疑惑,框架里面還有這玩意?什么東東呀,框架里面是沒有這的,但是我們簡單的學(xué)習(xí)一下單元測試,可以幫助我們自己測試代碼,學(xué)習(xí)單元測試可以讓我們少走很多彎路,畢竟,技多不壓身,哈哈,廢話不多說,我們往下看! ! !??????

??個人主頁:良辰針不戳
??所屬專欄:javaEE進階篇之框架學(xué)習(xí)
??勵志語句:生活也許會讓我們遍體鱗傷,但最終這些傷口會成為我們一輩子的財富。
??期待大家三連,關(guān)注,點贊,收藏。
??作者能力有限,可能也會出錯,歡迎大家指正。
??愿與君為伴,共探Java汪洋大海。

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

1. 初識單元測試

  • 單元測試(unit testing)是指對軟件中的最?可測試單元進?檢查和驗證的過程就叫單元測試(這里的單元并沒有明確的標(biāo)準(zhǔn))。
  • 這里的單元可以是一個函數(shù),方法,類,功能模塊或者子系統(tǒng).
  • 單元測試是開發(fā)者編寫的??段代碼,?于檢驗被測代碼的?個很?的、很明確的(代碼)功能是否正確。執(zhí)?單元測試就是為了證明某段代碼的執(zhí)?結(jié)果是否符合我們的預(yù)期。如果測試結(jié)果符合我們的預(yù)期,稱之為測試通過(測試成功),否則就是測試未通過(測試失敗)。

2. 單元測試有什么用?

  • 可以?常簡單、直觀、快速的測試某?個功能是否正確。
  • 使?單元測試可以幫我們在打包的時候,發(fā)現(xiàn)?些問題,因為在打包之前,所以的單元測試必須通過,否則不能打包成功。這樣可以減少問題發(fā)生的概率.
  • 使?單元測試,在測試功能的時候,可以不污染連接的數(shù)據(jù)庫,也就是可以不對數(shù)據(jù)庫進?任何改變的情況下,測試功能. 也就是測試的時候構(gòu)造一個假的數(shù)據(jù)庫,并沒有對真實的數(shù)據(jù)庫進行修改.

3. 使用單元測試

3.1 引入單元測試框架

  • 使用單元測試必須先引入單元測試的框架,也就是在pom.xml里面引入單元測試的依賴.
  • 但是在我們的Spring Boot 項目里面,Spring Boot 項?創(chuàng)建時會默認單元測試框架 spring-boot-test,如果只創(chuàng)建一個maven項目,我們需要手動引入單元測試的依賴,?這個單元測試框架主要是依靠另?個著名的測試框架 JUnit 實現(xiàn)的.
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

3.2 生成單元測試

我們測試的代碼是上一篇文章MyBatis中的mapper層.

  1. 打開我們要測試的類或者接口(或者其它),然后右鍵選擇Generate.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

  1. 點擊Test , 因為咱們要測試的是一個接口,因此Generate里面的東西比較少,如果測試類,還會有set等屬性.
    【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

我們先簡單的認識一下各個模塊,一般都不需要更改.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

  1. 選擇我們要測試的單元方法列表.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

此時在我們的test目錄里面就會生成一個測試類.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

3.3 完善單元測試的代碼

  1. 添加@SpringBootTest注解

在生成的單元測試類中加一個@SpringBootTest注解,這個注解表示該單元測試是在Spring Boot容器里面的,如果沒有該注解,單元測試的好多Spring Boot的功能就不能用.

package com.example.demo.mapper;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
//這個注解表示該單元測試是在Spring Boot容器里面的
@SpringBootTest
class StuMapperTest {

    @Test
    void getStuId() {
    }
}
  1. 注入測試對象,通過屬性注入把StuMapper注入進來
package com.example.demo.mapper;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
//這個注解表示該單元測試是在Spring Boot容器里面的
@SpringBootTest
class StuMapperTest {
    @Autowired
    private StuMapper stuMapper;
    @Test
    void getStuId() {
    }
}
  1. 添加單元測試的業(yè)務(wù)代碼

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

package com.example.demo.mapper;

import com.example.demo.entity.Stu;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
//這個注解表示該單元測試是在Spring Boot容器里面的
@SpringBootTest
class StuMapperTest {
    @Autowired
    private StuMapper stuMapper;
    @Test
    void getStuId() {
        Stu stu = stuMapper.getStuId(1);
        System.out.println(stu);
    }
}
  1. 運行我們的單元測試代碼,綠色的對鉤表示我們測試成功,程序沒有問題.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

在運行完我們的單元測試代碼之后,上面的運行塊變成了我們的單元測試運行塊,我們要想執(zhí)行我們的Spring Boot項目,需要改一下.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

4. 單元測試的斷言

咱們在C語言里面就接觸過斷言了,但你真的了解斷言嘛?

  • 斷言是用于對程序進行調(diào)試的,對執(zhí)行結(jié)構(gòu)進行一定的判斷,而不是對業(yè)務(wù)流程的判斷.
  • 那么上述的語句怎么理解呢?我們可以把斷言想象成一個if判斷語句,如果滿足,那么繼續(xù)執(zhí)行斷言后面的程序 ; 如果不滿足,那么拋出異常,后面的程序也將不會執(zhí)行.

斷言的方法表

方法名 作用
assertEquals 判斷兩個對象或者兩個原始類型是否相等
assertNotEquals 判斷兩個對象或兩個原始類型是否不相等
assertSame 判斷兩個對象引用是否指向同一個對象
assertNotSame 判斷兩個對象引用是否指向不同的對象
assertTrue 判斷是否為true
assertFalse 判斷是否為false
assertNull 判斷對象的引用是否為null
assertNotNull 判斷對象的引用是否不為null

注意 :
如果斷?失敗,則后?的代碼都不會執(zhí)?,這是非常重要的,打擊一定要記住.

  • 那么,接下來,我們就來在上一篇文章代碼的基礎(chǔ)上寫上一個簡單的斷言,來簡單看一下我們的程序運行結(jié)果.
  • 下面是我們的單元測試代碼,我們只是在單元測試的基礎(chǔ)上加了一個斷言.
package com.example.demo.mapper;

import com.example.demo.entity.Stu;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
//這個注解表示該單元測試是在Spring Boot容器里面的
@SpringBootTest
class StuMapperTest {
    @Autowired
    private StuMapper stuMapper;
    @Test
    void getStuId() {
        Stu stu = stuMapper.getStuId(1);
        System.out.println(stu);
        //添加一個斷言
        Assertions.assertEquals("李四",stu.getName());
    }
}

接下來,我們來看一下單元測試的運行結(jié)果.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?
那么,我們就明白了,預(yù)期結(jié)果和最終結(jié)果不一致的時候就不能通過單元測試.

接下來我們進行打包看一下結(jié)果.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

測試單元沒有通過測試的時候,打包也會失敗.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

接下來我們再來修改一下代碼,讓預(yù)期結(jié)果和最終結(jié)果相同.

package com.example.demo.mapper;

import com.example.demo.entity.Stu;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;
//這個注解表示該單元測試是在Spring Boot容器里面的
@SpringBootTest
class StuMapperTest {
    @Autowired
    private StuMapper stuMapper;
    @Test
    void getStuId() {
        Stu stu = stuMapper.getStuId(1);
        System.out.println(stu);
        Assertions.assertEquals("張三",stu.getName());
    }
}

我們看一下單元測試結(jié)果,發(fā)現(xiàn)此時已經(jīng)通過了單元測試.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

那么,我們此時進行打包呢,此時我們會成功的打包我們的代碼.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

下面是打包的包,如果我們想要在打包的時候直接改一個名字,我們可以在pom中稍微配置一下,包成功后包名就是我們設(shè)置的包名.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

在build標(biāo)簽中引入打包的包名,注意,一定是在build標(biāo)簽中.

<finalName>ssm-prohect</finalName>

在project標(biāo)簽中引入打包的后綴名字,默認為jar.

<packaging>jar</packaging>

接下來我們來看一下我們的打包結(jié)果,下面就是我們指定的包名以及后綴名.

【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?

后序:文章來源地址http://www.zghlxwxcb.cn/news/detail-487708.html

  • 今天我們和大家簡單學(xué)習(xí)一下單元測試,后序我們更加簡答的判斷我們的程序是否有問題.
  • 為什么我們要在mybatis中引入單元測試呢?
    因為進入mybatis中,我們就正式接觸我們的SSM項目了,隨著知識點的深入,我們也將不斷完善我們的技能.

到了這里,關(guān)于【MyBatis學(xué)習(xí)】Spring Boot(SSM)單元測試,不用打包就可以測試我們的項目了,判斷程序是否滿足需求變得如此簡單 ? ? ?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SSM整合-Spring整合SringMVC、Mybatis,ssm測試

    SSM整合-Spring整合SringMVC、Mybatis,ssm測試

    ? SSM(Spring + SpringMVC + Mybatis) 整合,就是三個框架協(xié)同開發(fā)。 Spring 整合 Mybatis,就是將 Mybatis 核心配置分揀當(dāng)中數(shù)據(jù)源的配置、事務(wù)管理、工廠的配置、Mapper接口的實現(xiàn)類等 交給Spring進行管理。 mybatisConfig.xml配置信息 整合到 SpringConfig.xml Spring 整合 SpringMVC,就是在web.xml當(dāng)中

    2023年04月22日
    瀏覽(28)
  • Mybatis單元測試,不使用spring

    Mybatis單元測試,不使用spring

    平時開發(fā)過程中需要對mybatis的Mapper類做單元測試,主要是驗證語法是否正確,尤其是一些復(fù)雜的動態(tài)sql,一般項目都集成了spring或springboot,當(dāng)項比較大時,每次單元測試啟動相當(dāng)慢,可能需要好幾分鐘,因此寫了一個純mybatis的單元測試基類,實現(xiàn)單元測試的秒級啟動。 單元

    2024年02月16日
    瀏覽(19)
  • 【Spring Boot】單元測試

    單元測試在日常項目開發(fā)中必不可少,Spring Boot提供了完善的單元測試框架和工具用于測試開發(fā)的應(yīng)用。接下來介紹Spring Boot為單元測試提供了哪些支持,以及如何在Spring Boot項目中進行單元測試。 單元測試主要用于測試單個代碼組件,以確保代碼按預(yù)期方式工作。目前流行的

    2024年02月16日
    瀏覽(18)
  • Spring Boot單元測試

    Spring Boot單元測試

    ??????SSM專欄更新中,各位大佬覺得寫得不錯,支持一下,感謝了!?????? Spring + Spring MVC + MyBatis_冷兮雪的博客-CSDN博客 Spring Boot 中進行單元測試是一個常見的做法,可以幫助你驗證應(yīng)用程序的各個組件是否按預(yù)期工作。所以我們有必要去學(xué)習(xí)一番! 單元測試

    2024年02月13日
    瀏覽(19)
  • Spring boot 集成單元測試

    Spring boot 集成單元測試

    1.引入依賴 2. ?3.編寫測試類

    2024年02月11日
    瀏覽(22)
  • 【Spring Boot】SpringBoot 單元測試

    【Spring Boot】SpringBoot 單元測試

    單元測試(unit testing),是指對軟件中的最?可測試單元進?檢查和驗證的過程就叫單元測試。 1、可以?常簡單、直觀、快速的測試某?個功能是否正確。 2、使?單元測試可以幫我們在打包的時候,發(fā)現(xiàn)?些問題,因為在打包之前,所以的單元測試必須通過,否則不能打包

    2024年02月07日
    瀏覽(22)
  • Mybatis 的多種標(biāo)簽使用以及 Spring 框架單元測試

    Mybatis 的多種標(biāo)簽使用以及 Spring 框架單元測試

    在講解 Mybatis 的標(biāo)簽之前, 要先介紹一下另一個 Java 的好幫手 Spring 框架內(nèi)置的 JUnit 測試框架. 為什么要在 Mybatis 學(xué)習(xí)之前了解 JUnit 呢 ? 很大一部分原因不僅僅是因為單元測試是寫完項目后開發(fā)人員自己需要做的, 更重要的是當(dāng)前階段學(xué)習(xí)中, 利用 JUnit 可以更簡單的構(gòu)造數(shù)據(jù)來

    2024年02月09日
    瀏覽(37)
  • Spring Boot單元測試入門指南

    Spring Boot單元測試入門指南

    JUnit是一個成熟和廣泛應(yīng)用的Java單元測試框架,它提供了豐富的功能和靈活的擴展機制,可以幫助開發(fā)人員編寫高質(zhì)量的單元測試。通過JUnit,開發(fā)人員可以更加自信地進行重構(gòu)、維護和改進代碼,同時提高代碼質(zhì)量和可維護性。 在使用Spring Boot進行單元測試時,以下是一些

    2024年02月15日
    瀏覽(24)
  • 三個要點,掌握Spring Boot單元測試

    三個要點,掌握Spring Boot單元測試

    單元測試是軟件開發(fā)中不可或缺的重要環(huán)節(jié),它用于驗證軟件中最小可測試單元的準(zhǔn)確性。 結(jié)合運用Spring Boot、JUnit、Mockito和分層架構(gòu),開發(fā)人員可以更便捷地編寫可靠、可測試且高質(zhì)量的單元測試代碼,確保軟件的正確性和質(zhì)量。 本文將從與單元測試相關(guān)的技術(shù)主題開始,

    2024年02月08日
    瀏覽(25)
  • Spring Boot 單元測試 0基礎(chǔ)教程

    咱們以一種通俗易懂的方式,通過一個簡單的實例來教你怎么在Spring Boot項目中進行單元測試。 假設(shè)你有一個簡單的Spring Boot應(yīng)用,里面有一個UserService接口,以及它的實現(xiàn)類 UserServiceImpl,這個服務(wù)有一個方法用來獲取用戶的問候語。 為了對該方法進行單元測試,我們可以創(chuàng)

    2024年04月16日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包