Код: Выделить всё
@RestController
@RequestMapping(value = ENDPOINT_URL)
public class MainController extends RestControllerBase {
MainService mainService;
public MainController(MainService mainService) {
this.mainService = mainService;
}
@GetMapping
public ResponseEntity getDashboardData() {
checkPermission();
List result = mainService.getData();
return ResponseEntity.ok().body(result);
}
}
Код: Выделить всё
class MainControllerTest {
MainController mainController;
@Test
public void test_getDashboardData_shouldReturn200Response() {
MainService mainService = Mockito.mock(MainService.class);
mainController = new MainController(mainService);
List mockData = List.of(new MainDataDto());
when(mainService.getData()).thenReturn(mockData);
Assertions.assertEquals(HttpStatus.OK, mainController.getDashboardData().getStatusCode());
}
Код: Выделить всё
java.lang.NullPointerException: Cannot invoke "org.springframework.security.core.Authentication.getPrincipal()" because the return value of "org.springframework.security.core.context.SecurityContext.getAuthentication()" is null
Я новичок в написании модульных тестов, поэтому пытаюсь делать это понемногу, чтобы понять, что делаю. . Из-за исключения я хочу «выяснить, как поступить» с checkPermission и (с моим ограниченным пониманием) я думаю, что могу/должен каким-то образом высмеивать этот метод или что-то вроде передачи этой части моего метода контроллера закончено.
Поскольку этот метод защищен, как лучше всего изменить мой модульный тест, чтобы я больше не получал вышеуказанное исключение?
Подробнее здесь: https://stackoverflow.com/questions/787 ... code-in-it
Мобильная версия