Всегда возвращать NullPointerException в списке массивов при издевательстве в контроллере - PullRequest
2 голосов
/ 07 августа 2020

Я пытаюсь сделать простой модульный тест, используя JUnit и Mockito в контроллере. Я издевался над сервисом, потому что он будет вызываться контроллером. Вот код

@RunWith(MockitoJUnitRunner.class)
class MsCustomerControllerTest {
    
    @Mock
    MsCustomerService customerServiceMock;

    
    @InjectMocks
    MsCustomerController customerController;
    
    @Test
    void test() {
        fail("Not yet implemented");
    }
    

    
    @Test
    public void findAllCustomerTest() {
        
        List<MsCustomer> listCustomer = new ArrayList<MsCustomer>();
        listCustomer.add(new MsCustomer(1, "Rosa", "Titian Indah", LocalDateTime.now()));
        listCustomer.add(new MsCustomer(2, "Rosa2", "Titian Indah2", LocalDateTime.now()));
        when(customerServiceMock.findAllCustomer()).thenReturn(listCustomer);
        
        ResponseEntity response = new ResponseEntity(listCustomer, HttpStatus.OK);
        
        
        assertEquals(response, customerController.findAllCustomer());
    }

}

примечание: customerController также возвращает объект ответа, так что assert также с объектом ответа.

Вот результат

введите описание изображения здесь

Я пробовал другой метод, и он также дал мне исключение NullPointerException.

1 Ответ

1 голос
/ 07 августа 2020

Попробуйте добавить метод инициализации и аннотируйте его с помощью @BeforeEach. Затем внутри метода добавьте MockitoAnnotations.initMocks(this);, который инициализирует поля, аннотированные аннотациями Mockito.

@RunWith(MockitoJUnitRunner.class)
class MsCustomerControllerTest {
    
    @Mock
    MsCustomerService customerServiceMock;

    
    @InjectMocks
    MsCustomerController customerController;

    @BeforeEach
    void initMock() {
        MockitoAnnotations.initMocks(this);
    }
    
    @Test
    void test() {
        fail("Not yet implemented");
    }
    

    
    @Test
    public void findAllCustomerTest() {
        
        List<MsCustomer> listCustomer = new ArrayList<MsCustomer>();
        listCustomer.add(new MsCustomer(1, "Rosa", "Titian Indah", LocalDateTime.now()));
        listCustomer.add(new MsCustomer(2, "Rosa2", "Titian Indah2", LocalDateTime.now()));
        when(customerServiceMock.findAllCustomer()).thenReturn(listCustomer);
        
        ResponseEntity response = new ResponseEntity(listCustomer, HttpStatus.OK);
        
        
        assertEquals(response, customerController.findAllCustomer());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...