Mockito - NullpointerException cuando se aplica el método

Entonces comencé a escribir pruebas para nuestro proyecto Java-Spring.

Lo que uso es JUnit y Mockito. Se dice que cuando uso la opción when () ... thenReturn () puedo burlarme de los servicios, sin simularlos más o menos. Entonces, lo que quiero hacer es establecer:

when(classIwantToTest.object.get().methodWhichReturnsAList(input))thenReturn(ListcreatedInsideTheTestClass)  

Pero no importa qué cláusula when haga, siempre obtengo una NullpointerException, que por supuesto tiene sentido, porque la entrada es nula.

También cuando trato de burlarme de otro método de un objeto:

when(object.method()).thenReturn(true)

Allí también obtengo un Nullpointer, porque el método necesita una variable, que no está configurada.

Pero quiero usar when () .. thenReturn () para evitar crear esta variable y así sucesivamente. Solo quiero asegurarme de que si alguna clase llama a este método, no importa qué, simplemente devuelva true o la lista anterior.

¿Es básicamente un malentendido de mi parte, o hay algo más mal?

Código:

public class classIWantToTest implements classIWantToTestFacade{
        @Autowired
        private SomeService myService;

        @Override
        public Optional<OutputData> getInformations(final InputData inputData) {
            final Optional<OutputData> data = myService.getListWithData(inputData);
            if (data.isPresent()) {
                final List<ItemData> allData = data.get().getItemDatas();
                    //do something with the data and allData
                return data;
            }

            return Optional.absent();
        }   
}

Y aquí está mi clase de prueba:

public class Test {

    private InputData inputdata;

    private ClassUnderTest classUnderTest;

    final List<ItemData> allData = new ArrayList<ItemData>();

    @Mock
    private DeliveryItemData item1;

    @Mock
    private DeliveryItemData item2;



    @Mock
    private SomeService myService;


    @Before
    public void setUp() throws Exception {
        classUnderTest = new ClassUnderTest();
        myService = mock(myService.class); 
        classUnderTest.setService(myService);
        item1 = mock(DeliveryItemData.class);
        item2 = mock(DeliveryItemData.class);

    }


    @Test
    public void test_sort() {
        createData();
        when(myService.getListWithData(inputdata).get().getItemDatas());

        when(item1.hasSomething()).thenReturn(true);
        when(item2.hasSomething()).thenReturn(false);

    }

    public void createData() {
        item1.setSomeValue("val");
        item2.setSomeOtherValue("test");

        item2.setSomeValue("val");
        item2.setSomeOtherValue("value");

        allData.add(item1);
        allData.add(item2);


}

Respuestas a la pregunta(11)

Su respuesta a la pregunta