你好,歡迎進(jìn)入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(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)如右圖所示:
然后編譯單元測(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è)試,如右圖所示:
筆記:
如有侵權(quán)請(qǐng)聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務(wù)提供商
13262879759
微信二維碼