繁体   English   中英

Spring MVC测试

[英]Spring MVC test

我正在尝试学习 spring,但我找不到足够的资源进行测试,对不起我的英语:) 我有一个 controller class,它返回 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());}}

我得到状态 expected<200> 但是是 <404> 我是否需要先创建一个 Order 实例,因为它是一个相当大的 class 有很多变量? 端点测试方法有哪些? 是否有任何书籍或在线资源仅用于 MVC 测试目的? 非常感谢

你是 mocking OrderRepository class 但没有与之关联的规则,创建一个虚拟订单并添加这样的规则when(orderRepository.findById(<id in the dummy order>)).thenReturn(DummyOrder)这样,你正在为 OrderRepository 设置规则以根据您的需要运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM