中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Spring中進行集成測試

發布時間:2021-07-14 09:22:25 來源:億速云 閱讀:137 作者:chen 欄目:編程語言

本篇內容主要講解“如何在Spring中進行集成測試”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何在Spring中進行集成測試”吧!

在單元測試時,我們盡量在屏蔽模塊間相互干擾的情況下,重點關注模塊內部邏輯的正確性。而集成測試則是在將模塊整合在一起后進行的測試,它的目的在于發現一些模塊間整合的問題。有些功能很難通過模擬對象進行模擬,相反它們往往只能在真實模塊整合后,才能真正運行起來,如事務管理就是其中比較典型的例子。

按照Spring的推薦(原話:You should not normally use the Spring container for unit tests: simply populate your POJOs in plain JUnit tests!),在單元測試時,你不應該依賴于Spring容器。換言之,你不應該在單元測試時啟動ApplicatonContext并從中獲取 Bean,相反你應該通過模擬對象完成單元測試。而集成測試的前提則是事先裝配好模塊和模塊之間的關聯類,如將DAO層真實的UserDao和 LoginLogDao裝配到UserServiceImpl再進行測試。具體裝配工作是在Spring配置文件中完成的,因此在一般情況下,集成測試需要啟動Spring容器,你可以在測試類中簡單地從Spring容器中取出目標Bean進行測試。

需要測試的業務接口

假設我們的應用中擁有一個UserService業務層接口,它擁有4個業務方法,其代碼如下所示:
代碼清單1 UserServie接口

  1. package com.baobaotao.service;  

  2. import com.baobaotao.domain.User;  

  3. import org.springframework.transaction.annotation.Transactional;  

  4. @Transactional  

  5. public interface UserService {  

  6. boolean hasMatchUser(String userName,String password);  

  7. User findUserByUserName(String userName);  

  8. void loginSuccess(User user);  

  9. void registerUser(User user);  

我們通過UserServiceImpl對UserService提供了實現:
代碼清單2 UserServiceImpl實現UserService接口 

  1. package com.baobaotao.service;  

  2. import com.baobaotao.dao.LoginLogDao;  

  3. import com.baobaotao.dao.UserDao;  

  4. import com.baobaotao.domain.LoginLog;  

  5. import com.baobaotao.domain.User;  

  6. public class UserServiceImpl implements UserService {  

  7. private UserDao userDao;  

  8. private LoginLogDao loginLogDao;  

  9. public boolean hasMatchUser(String userName, String password) {  

  10. int matchCount =userDao.getMatchCount(userName, password);  

  11. return matchCount > 0;  

  12. }  

  13. public User findUserByUserName(String userName) {  

  14. return userDao.findUserByUserName(userName);  

  15. }  

  16. public void loginSuccess(User user) {  

  17. user.setCredits( 5 + user.getCredits());  

  18. LoginLog loginLog = new LoginLog();  

  19. loginLog.setUserId(user.getUserId());  

  20. loginLog.setIp(user.getLastIp());  

  21. loginLog.setLoginDate(user.getLastVisit());  

  22. userDao.updateLoginInfo(user);  

  23. loginLogDao.insertLoginLog(loginLog);  

  24. }  

  25. public void setLoginLogDao(LoginLogDao loginLogDao) {  

  26. this.loginLogDao = loginLogDao;  

  27. }  

  28. public void setUserDao(UserDao userDao) {  

  29. this.userDao = userDao;  

  30. }  

  31. }  

UserServiceImpl引用了兩個DAO層的類(UserDao和LoginLogDao)共同實現UserService的接口,在UserServiceImpl開放使用之前,我們有必須對其進行集成測試,以保證實現邏輯的正確性。

到此,相信大家對“如何在Spring中進行集成測試”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

堆龙德庆县| 都兰县| 晴隆县| 彭泽县| 福安市| 孝义市| 漳州市| 五大连池市| 义马市| 乐清市| 科技| 怀宁县| 长宁区| 吉林省| 翁源县| 靖远县| 方正县| 炎陵县| 麦盖提县| 沂南县| 汝州市| 康乐县| 苏尼特右旗| 岫岩| 普兰县| 五指山市| 邓州市| 介休市| 阜城县| 留坝县| 石林| 方山县| 房产| 德庆县| 南昌市| 平利县| 青海省| 慈溪市| 广州市| 定安县| 鞍山市|