Mockito - NullpointerException при использовании метода заглушки

Поэтому я начал писать тесты для нашего Java-Spring-проекта.

Я использую JUnit и Mockito. Говорят, что когда я использую опцию when () ... thenReturn (), я могу имитировать сервисы, не моделируя их или около того. Итак, что я хочу сделать, это установить:

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

Но независимо от того, когда я делаю предложение, я всегда получаю исключение NullpointerException, что, конечно, имеет смысл, потому что input имеет значение null.

Также, когда я пытаюсь смоделировать другой метод из объекта:

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

Там я также получаю Nullpointer, потому что методу нужна переменная, которая не установлена.

Но я хочу использовать when () .. thenReturn (), чтобы обойти создание этой переменной и так далее. Я просто хочу убедиться, что если какой-либо класс вызывает этот метод, то несмотря ни на что, просто верните true или список выше.

Это в основном недоразумение с моей стороны, или что-то не так?

Код:

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();
        }   
}

И вот мой тестовый класс:

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);


}

Ответы на вопрос(11)

Ваш ответ на вопрос