почему мой модульный тест для моего метода контроллера отдыха с mock не работает? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь сделать фиктивный тест метода в моем контроллере, но он не работает, у меня исключение нулевого указателя, и я хотел бы знать, почему он не работает, я точно знаю, что это мой первый раз, когда я делаюэтот вид тестов.

Это мой контроллер покоя:

@RestController
@RequestMapping("/api")
public class AdminController {

    @Autowired
    private UserService userService;

 @Secured(value = "ROLE_ADMIN")
    @GetMapping("/roles")
    public ResponseEntity<List<Role>> getRoles(){

        return new  ResponseEntity(userService.getRoles(), HttpStatus.OK);
    }

Это мой тест по контроллеру:

@RunWith(SpringRunner.class)
@WebMvcTest(value = AdminController.class, secure = false)

public class AdminControllerTest {


    private MockMvc mvc;


    @MockBean
    UserService userService;
 @Test
    public void getRoles() throws Exception{

        Role role=new Role("Admin");

        List<Role> roles=Arrays.asList(role);
        given(userService.getRoles()).willReturn(roles);
        mvc.perform(get("/api/roles")).andExpect(status().isOk());

    }

Когда я запускаю тест для этого метода, у меня естьошибка такого рода:

enter image description here

Заранее благодарю за помощь

1 Ответ

0 голосов
/ 03 октября 2018

Попробуйте это.Он должен работать.Я думаю, что вы пропустили @Autowired аннотацию

@RunWith(SpringRunner.class)
    @WebMvcTest(value = AdminController.class, secure = false)
    public class AdminControllerTest {

        @Autowired
        private MockMvc mvc;
        @MockBean
        UserService userService;
        @Test
        public void getRoles() throws Exception{

            Role role=new Role("Admin");

            List<Role> roles=Arrays.asList(role);
            given(userService.getRoles()).willReturn(roles);
            mvc.perform(get("/api/roles")).andExpect(status().isOk());

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