一千萬個為什麽

搜索

靜態方法如何返回不同的實現類?

我正在通過嘲笑外部服務來編寫單元測試

com.example.Service service;

service = RealServiceClient.getService().getServiceId("1");

如何模擬上面的 RealService 類?

事情是 RealServiceClient.getService()返回 RealService

PS:我是Java新手。

最佳答案

為單元測試創​​建模擬服務有很多選項。其中大多數都在名稱中有“模擬”,並且是用於執行此類操作的框架。以下是一些基於Java的模擬工具:

另一種選擇是修改您自己的服務,以允許提供替代實現進行測試。盡管如此,您可能無法修改服務或界面。

Personally, I prefer to use a dynamic language for doing the mocks. I find that you can get a lot of the ability you need without a fancy framework. I use groovy a lot for writing my unit tests. See this page for more information on using Groovy closures instead of Mocks: http://groovy.codehaus.org/Developer+Testing+using+Closures+instead+of+Mocks

轉載註明原文: 靜態方法如何返回不同的實現類?