Site
클래스는 외부 팀에서 나에게 제공하며 개인 생성자가 있습니다.개인 생성자 조롱
public class Site
{
int id;
String brand;
private Site(int id, String brand)
{
this.id = id;
this.brand = brand;
}
}
(팀에 의해 제어)를 SiteUtil 클래스 따라서 조롱해야의 getSite()
기능 네트워크 통화를 필요에 그것을 논리를 적용
public class SiteUtil
{
public static Site getSite()
{
Site site;
//Logic
return site;
}
}
데이터이다. 그것은
Site mockSite = new Site(1,"Google");
PowerMockito.when(SiteUtil.getSite(1)).thenReturn(mockSite);
물론 위의 코드는 내가 대중을 사용할 때 컴파일 dosent을 다음과 같이
내가 조롱 (아마도, 그래서 확실하지 않은 데이터 소스와의 일관성을 유지하기 위해) 현재 세터가 없습니다 건설자. 내가 읽은 해결책은 Site
개체의 개인 생성자를 조롱하는 것이 었습니다. 나는 그 수행하는 방법에 대한 손실에 그러나 해요
Java 리플렉션을 통해 개인 정보에 액세스 할 수 있습니다. – Tokazio
내가 볼 수있는 코드 또는 참조로 좀 더 자세히 설명해 주시겠습니까? –
부적절합니다. 이것은 끔찍한 API 디자인입니다. "외부 팀"이 조직 내에 있거나 완전히 분리되어 있습니까? – chrylis