有時候為了去掉對外部系統的依賴, 我們需要針對外部依賴的介面建立乙個mock實現類, 當然裡面都是空實現, 如果有多個的話, 可能需要寫很多的mock實現類, 我們在測試的時候, 發現可以通過spring aop來進行簡化, 使用乙個aspect來替代多個mock實現. 具體做法如下:
首先是aop的配置檔案, 如下:
<?xml version="1.0" encoding="gbk"?>這裡主要配置了乙個用來放實際執行的方面類:mockaspect, 然後是一些pointcut的表示式配置.也就是告訴spring aop, 當碰到某個類, 某個方法的時候, 去執行mockaspect中對應的某個方法.
mockaspect的內容如下:
public class mockaspect implements beanfactoryaware
public void setbeanfactory(beanfactory beanfactory) throws bean***ception
/***
* 乙個預設的處理, 什麼也不做
** @param join
* @return
* @throws throwable
*/public object invokeandreturnnull(proceedingjoinpoint join) throws throwable
public string invokeandreturnstring(proceedingjoinpoint join) throws
throwable
/*** 對方法進行切面
* @param join
* @param text
* @param categoryid
* @return
* @throws throwable
*/public string checkfixkeywords(proceedingjoinpoint join, string text,
long categoryid)
throws throwable
return null;
}}
這裡還需要提到的乙個東東, 就是實現了beanfactoryaware 介面, 主要是為了在一起執行所有的test case的時候, 有時候裡面有幾個bean需要替換為mock的實現類(比如這裡的categorymanagermock), 這裡我們做了乙個switch的動作, 讓他不是去呼叫具體的類, 而是我們定義的乙個mock實現類.
當然這種做法也不要濫用, 適可而止, 針對一些簡單的, 大量的mock, 還是有一定參考意義的.
MO歡迎使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
Spring Aop基礎使用
說到spring,想必大家一定就馬上想到了,哦spring不就是幫助管理bean物件,封裝資料源,提供事務管理的東西麼。的確,平常在使用spring的時候,用到最多的就是spring提供的這些功能了,其實spring還有乙個挺好的東西,或許大家平常用得少一些,他就叫aop。什麼aop,這是什麼玩意兒...
springAOP使用詳情
aop分為兩種方式 xml配置和註解 aspect,pointcut和 advice pointcut expression 切面表示式 指示器 designators execution 和其他 萬用字元 wildcards 和邏輯運算子 和!萬用字元 表示匹配任意數量的字元,匹配指定類及其之類 ...