[英]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.