Весенний тест MVC - PullRequest
       17

Весенний тест MVC

0 голосов
/ 30 сентября 2019

Я пытаюсь учиться весной, и я не могу найти достаточно ресурсов для тестирования, извините за мой английский :) У меня есть класс контроллера, который возвращает ResponseEntity

    @RestController
    @RequestMapping("/")
    public class OrderController {

    @Autowired
    private OrderRepository rep;

    @GetMapping("/{id}")
    public ResponseEntity<?> getOrderById(@PathVariable("id") String id){
        Order or = rep.findById(id).get();
        return ResponseEntity.ok(or); }
    @PostMapping("/add")
    public ResponseEntity<?> addOrder(@RequestBody Order order){
        rep.save(order);
        return ResponseEntity.ok(order);
}

Я пытаюсь проверить с

 @RunWith(SpringRunner.class)
 @WebMvcTest(OrderController.class)
 public class OrderControllerTest {

    @Autowired
    private MockMvc mockMvc;
    @MockBean
    private OrderRepository orderRepository;
    @Test
    public void shouldPresistOrder() throws Exception {

        this.mockMvc.perform(get("/ORD00001").accept("application/json"))
        .andExpect(status().isOk());}}

Я получил ожидаемый статус <200>, но был <404> Нужно ли сначала создавать экземпляр Order, потому что это довольно большой класс с большим количеством переменных? Каковы способы тестирования конечных точек? Существуют ли книги или онлайн-ресурсы только для целей тестирования MVC? Большое спасибо

1 Ответ

1 голос
/ 30 сентября 2019

Вы издеваетесь над классом OrderRepository , но с ним не связано никаких правил, создайте пустышку Order и добавьте правило следующим образом when(orderRepository.findById(<id in the dummy order>)).thenReturn(DummyOrder) Таким образом, вы устанавливаетеправила поведения OrderRepository в соответствии с вашими потребностями.

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