Site
課程由外部團隊提供給我,並有一個專用構造函數。嘲笑私人構造函數
public class Site
{
int id;
String brand;
private Site(int id, String brand)
{
this.id = id;
this.brand = brand;
}
}
的SiteUtil類(由隊控制)是
public class SiteUtil
{
public static Site getSite()
{
Site site;
//Logic
return site;
}
}
數據的getSite()
函數應用它邏輯上需要一個網絡的呼叫,因此它需要被模擬。它沒有一個二傳手當前(可能保持與數據源,不那麼肯定一致性)
我嘲笑它,如下所示
Site mockSite = new Site(1,"Google");
PowerMockito.when(SiteUtil.getSite(1)).thenReturn(mockSite);
以上課程的代碼編譯dosent我用公構造函數。 我讀的解決方案是模擬Site
對象的私有構造函數。但是我就如何做一個損失
您可以使用java反射訪問私有。 – Tokazio
你能詳細說明一下我可以看的代碼或參考嗎? –
Ouch。這是一個糟糕的API設計。組織中的「外部團隊」是完全獨立的嗎? – chrylis