国产精品高清一区二区三区不卡-国产精品一区二区三区免费视频-日韩免费高清一级毛片-亚洲欧美一区二区三区国产精品-日韩欧美一区二区三区不卡视频-亚欧免费视频一区二区三区-亚洲欧美日韩一区成人-欧美日韩视频综合一区无弹窗-精品日韩在线视频一区二区三区-国内精品视频一区二区三区

你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!

誠(chéng)信、勤奮、創(chuàng)新、卓越

友好定價(jià)、專(zhuān)業(yè)客服支持、正版軟件一站式服務(wù)提供

13262879759

工作日:9:00-22:00

springboot數(shù)據(jù)庫(kù)訪問(wèn)單元測(cè)試

發(fā)布時(shí)間:2023-05-28

瀏覽次數(shù):0

1.添加單元測(cè)試依賴(lài)

提供組件以支持單元測(cè)試。 組件集成了Junit、.等測(cè)試框架,可以方便快捷的進(jìn)行單元測(cè)試。

Maven 依賴(lài)項(xiàng):

pom.xml

組織..引導(dǎo)

-引導(dǎo)--測(cè)試

測(cè)試

2.編譯單元測(cè)試類(lèi)

在工程的test目錄下,新建一個(gè)單元測(cè)試類(lèi),以3.7節(jié).java為例,介紹如何對(duì)數(shù)據(jù)庫(kù)訪問(wèn)進(jìn)行單元測(cè)試。

待測(cè)類(lèi)和負(fù)責(zé)單元測(cè)試的類(lèi)的目錄結(jié)構(gòu)如右圖所示:

intellij idea 數(shù)據(jù)庫(kù)關(guān)系圖_intellij idea 時(shí)序圖_intellij idea mac

然后編譯單元測(cè)試類(lèi)的測(cè)試方法。 測(cè)試方法被標(biāo)記為帶有@Test 注釋的單元測(cè)試。 因?yàn)槭菙?shù)據(jù)庫(kù)訪問(wèn)的單元測(cè)試,所以建議在測(cè)試類(lèi)中加上@注解,開(kāi)啟事務(wù)管理。 在單元測(cè)試的情況下intellij idea 數(shù)據(jù)庫(kù)關(guān)系圖,@注解會(huì)在每個(gè)單元測(cè)試方法執(zhí)行完后執(zhí)行數(shù)據(jù)回滾,防止單元測(cè)試數(shù)據(jù)污染數(shù)據(jù)庫(kù)。

.java測(cè)試代碼參考如下(實(shí)例限于篇幅沒(méi)有測(cè)試.java中的所有方法):

.java

package com.test.cloud.demo.mapper;
 
import com.test.cloud.demo.vo.User;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
 
@RunWith(SpringRunner.class)
@SpringBootTest
//開(kāi)啟數(shù)據(jù)回滾,避免污染數(shù)據(jù)庫(kù)
@Transactional
public class UserMapperTest {
    @Autowired
    private UserMapper userMapper;
 
    @Test
    //測(cè)試方法的命名最好能描述需要測(cè)試的案例情況
    public void testInsertThenSuccessInserted() {
        User test = new User("123456", "testName", "男", "23");
        int count = userMapper.insert(test);
        //使用Assert斷言來(lái)判斷案例是否成功
        Assert.assertTrue(count == 1);
        User user = userMapper.select(test.getId());
        Assert.assertTrue(user.equals(test));
    }
     
    //異常測(cè)試
    @Test(expected = DuplicateKeyException.class)
    public void testInsertWhenUserExistThenReturnException() {
        User user1 = new User("147258", "testName", "男", "23");
        int count = userMapper.insert(user1);
        Assert.assertTrue(count == 1);
        userMapper.insert(user1);
    }
 
    @Test(expected = Exception.class)
    public void testInsertWhenIdIsNullThenReturnException() {
        User user = new User(null, "testName", "男", "23");
        userMapper.insert(user);
    }
 
    @Test
    public void testUpdateThenSuccessUpdated() {
        User user = new User("147258", "testName", "男", "23");
        userMapper.insert(user);
        user.setName("otherName");
        userMapper.update(user);
        User existUser = userMapper.select(user.getId());
        Assert.assertTrue(existUser.getName().equals(user.getName()));
    }
     
    //更多測(cè)試方法,測(cè)試方法要盡可能覆蓋正反案例、異常邏輯等
}

3.執(zhí)行單元測(cè)試

測(cè)試類(lèi)編寫(xiě)完成后intellij idea 數(shù)據(jù)庫(kù)關(guān)系圖,以IDEA為例,選擇要執(zhí)行的測(cè)試方法或測(cè)試類(lèi),右鍵選擇Run或Debug執(zhí)行單元測(cè)試,如右圖所示:

intellij idea mac_intellij idea 數(shù)據(jù)庫(kù)關(guān)系圖_intellij idea 時(shí)序圖

筆記:

如有侵權(quán)請(qǐng)聯(lián)系刪除!

13262879759

微信二維碼