Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I mock call method from testable class?

Want to ask you a question.

How should I properly return some data from method called from testable class ?

For example I have next structure:

Class SomeClass {
    public void method1(){
    //some logic here
    List<Object> howToReturnHereValues = gatData();
    //some logic here
    }
    public List<Object> getData(){

       return List<Object>;

    }
}

Right now I want to test method1(), but I don't know how to mock call getData() which returns List<Object>.

Any advice please ?

like image 880
Andrew Avatar asked Dec 04 '25 15:12

Andrew


1 Answers

You can do this using a spy, like explained here: https://static.javadoc.io/org.mockito/mockito-core/2.7.17/org/mockito/Mockito.html#13

Example:

@Test
public void testMethod1() throws Exception {
    SomeClass someClass = new SomeClass();
    SomeClass spy = Mockito.spy(someClass);
    Mockito.when(spy.getData()).thenReturn(Arrays.asList("blaat", "blabla"));
    spy.method1();
}

This will return a List of "blaat" and "blabla" which can be used by the logic in your method1.

like image 141
StefK Avatar answered Dec 07 '25 04:12

StefK