成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Spring中進行集成測試

開發(fā) 后端
本文介紹Spring中集成測試則是在將模塊整合在一起后進行的測試,它的目的在于發(fā)現(xiàn)一些模塊間整合的問題。

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

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

需要測試的業(yè)務接口

假設我們的應用中擁有一個UserService業(yè)務層接口,它擁有4個業(yè)務方法,其代碼如下所示:
代碼清單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提供了實現(xiàn):
代碼清單2 UserServiceImpl實現(xiàn)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)共同實現(xiàn)UserService的接口,在UserServiceImpl開放使用之前,我們有必須對其進行集成測試,以保證實現(xiàn)邏輯的正確性。

【編輯推薦】

  1. 當Spring遇到Hibernate的時候
  2. 將Flex與Spring集成框架
  3. 如何集成Struts和Spring
  4. Spring2.0升級Spring2.0.7的變化
  5. Spring 2.0新功能
責任編輯:佚名 來源: 中國IT實驗室
相關(guān)推薦

2021-03-24 09:30:02

Jupyter not單元測試代碼

2011-08-01 10:41:59

Xcode 條件編譯

2021-11-29 22:59:34

Go Dockertest集成

2009-03-03 09:00:57

Silverlight數(shù)據(jù)驗證UI控件

2023-10-18 18:31:04

SQL查詢數(shù)據(jù)

2023-08-02 08:02:30

Redis數(shù)據(jù)原生方法

2021-08-27 14:36:01

主題建模BerTopic

2020-06-30 08:23:00

JavaScript開發(fā)技術(shù)

2019-04-18 09:15:05

DaskPython計算

2024-05-06 13:34:28

WireGoogleGo

2011-11-30 15:18:06

JavaJBossJ2EE

2016-08-22 11:46:53

GitLinux開源

2009-12-11 09:43:43

靜態(tài)路由配置

2010-03-30 18:48:24

Oracle 學習

2012-04-09 13:39:37

ibmdw

2020-03-07 18:00:17

logzeroPython日志記錄

2020-09-17 06:42:31

ReactStoreon前端

2009-12-28 13:59:12

ADO調(diào)用存儲過程

2023-06-19 15:38:38

JavaScripAPI

2021-08-13 13:39:29

云計算云計算環(huán)境云應用
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本精品视频 | 亚洲国产情侣 | 欧美日韩不卡 | 992人人草| 99久久精品免费看国产四区 | 国产日韩欧美精品一区二区三区 | k8久久久一区二区三区 | 激情国产视频 | 国产成人高清 | 亚洲午夜精品一区二区三区他趣 | 精品久久久久久 | 亚洲精久久久 | 视频在线亚洲 | 亚洲www| 久在线精品视频 | 有码在线 | 精品久久精品 | 国产精品区二区三区日本 | 超碰成人av | 精品日韩一区二区 | 99在线免费视频 | 福利视频一区二区 | 欧美一级欧美一级在线播放 | 亚洲国产日韩欧美 | 91麻豆精品国产91久久久久久久久 | 91婷婷韩国欧美一区二区 | 91电影院| 盗摄精品av一区二区三区 | 欧美 日本 国产 | 中文字幕在线观看av | 国产精品不卡 | 日韩福利 | 亚洲欧美在线观看 | 日本免费一区二区三区四区 | 亚洲毛片在线 | 国产亚洲精品美女久久久久久久久久 | 国产精品久久久久久久白浊 | 欧美精品日韩精品国产精品 | 四虎影院在线免费观看 | 特级黄一级播放 | 亚洲欧美一区二区三区在线 |