Mock object is not working when i try to access private method using reflection
Main Class:
@Component
public class ActualClass{
@Autowired
MockClass data;
private String sampleMethod(String data){
//
List<String> list=data.getdata("something") // trying to mock this line
//}
}
Mock Class:
@Component
public class MockClass{
public List<String> getdata(String serviceName){
return restTemplate.getForObject("http://localhost:9000/data/something",
ArrayList.class); this line will return some datas as list}
}
My TestCase:
public class TestCases{
@Autowired
MockClass mockobj;
@Autowired
@InjectedMocks
ActualClass actualClass
@Test
public void valid(){
MockitoAnnotations.initMocks(this);
List<String> obj=new ArrayList<String>();
obj.add("something")
when(mockobj.getdata("something")).thenreturn(obj);
Class<?> cObject=Class.forName("com.ActualClass");
ActualClass actualClass=(ActualClass) cObject.newInstance();
Method method=cObject.getDeclaredMethod("sampleMethod",String.class);
method.setAccessible(true);
method.invoke(actualClass,"date");}
}
can you anyone tell me whats going wrong in my test cases? the same mock object is working when i access public method.
i am having problem with only private method.
how can i solve this?