dubbo讀書筆記九 mock服務返回值

2021-09-29 08:04:27 字數 1584 閱讀 7828

本地偽裝 [1] 通常用於服務降級,比如某驗權服務,當服務提供方全部掛掉後,客戶端不丟擲異常,而是通過 mock 資料返回授權失敗。

在 spring 配置檔案中按以下方式配置:

在工程中提供 mock 實現 [2]:

package com.foo;

public class barservicemock implements barservice

}

如果服務的消費方經常需要 try-catch 捕獲異常,如:

offer offer = null;

try catch (rpcexception e)

請考慮改為 mock 實現,並在 mock 實現中 return null。如果只是想簡單的忽略異常,在2.0.11以上版本可用:

使用return來返回乙個字串表示的物件,作為 mock 的返回值。合法的字串可以是:

使用throw來返回乙個 exception 物件,作為 mock 的返回值。

當呼叫出錯時,丟擲乙個預設的 rpcexception:

當呼叫出錯時,丟擲指定的 exception:

2.6.6以上的版本,可以開始在 spring xml 配置檔案中使用fail:force:force:代表強制使用 mock 行為,在這種情況下不會走遠端呼叫。fail:與預設行為一致,只有當遠端呼叫發生錯誤時才使用 mock 行為。force:fail:都支援與throw或者return組合使用。

強制返回指定值:

強制丟擲指定異常:

mock 可以在方法級別上指定,假定com.foo.barservice上有好幾個方法,我們可以單獨為sayhello()方法指定 mock 行為。具體配置如下所示,在本例中,只要sayhello()被呼叫到時,強制返回 "fake":

mock 是 stub 的乙個子集,便於服務提供方在客戶端執行容錯邏輯,因經常需要在出現 rpcexception (比如網路失敗,超時等)時進行容錯,而在出現業務異常(比如登入使用者名稱密碼錯誤)時不需要容錯,如果用 stub,可能就需要捕獲並依賴 rpcexception 類,而用 mock 就可以不依賴 rpcexception,因為它的約定就是只有出現 rpcexception 時才執行。 ↩︎

在 inte***ce 旁放乙個 mock 實現,它實現 barservice 介面,並有乙個無參建構函式 ↩︎

effectiveC 讀書筆記(九)

9.雜項討論 miscellany 1.嚴肅對待編譯器發出的警告訊息。努力在你的編譯器的最高 最嚴苛 警告級別下爭取 無任何警告 的榮譽 2.不要過度倚賴編譯器的報警能力,因為不同的編譯器對待事情的態度並不相同。一旦移值到另乙個編譯器上,你原本倚賴的警告資訊有可能消失 1.c 標準程式庫主要機能由 ...

《除錯九法》讀書筆記

除錯九法 讀書筆記 婁雨禛pb16060356 理解問題本身,遠比解決問題更加重要 人們想要掌握本書中的所有有用知識也並非完全不可能,事實上我就是盡全力這樣做的。福爾摩斯 殺人的五個橘核 我們總是驚嘆福爾摩斯的能力,將其歸於驚人的天賦。殊不知驚人的天賦總是扎根於辛勤的努力,辛勤的努力總是體現在日常一...

第九周讀書筆記

這週我的閱讀書目是 程式設計匠藝 像大多數有關書目一樣,該書從圍繞著如何編寫優美的 進行了討論,我著重看了書中關於防禦性程式設計和 優化兩個部分,這兩個部分也是我們在該課程中可以說是最主要的兩個方面。1 關於防禦性程式設計 用書中一句讓人覺得可笑卻又不得不認同的話引入,就是 所有你覺得有可能出錯的地...