在帖子表单对象上的Spring mockMvc

时间:2014-07-14 15:59:02

标签: spring testing model-view-controller mocking mockmvc

我的控制器中有以下代码:

@Controller
@RequestMapping(value="/my")
public class MyController  {

    @RequestMapping(value="/zone/{id}", method=RequestMethod.POST)
    public ModelAndView zone(@PathVariable Long id, @Valid MyFormBean formBean){

    System.out.println(formBean.getId());
    ModelMap mod = new ModelMap();
    mod.put("test", true);
    return new ModelAndView(myViewName, model);
    }
}

我的MyControllerTest类中的以下代码

public class MyControllerTest {
  @InjectMocks
  private MyController myController = new MyController();

  private MockMvc mockMvc = MockMvcBuilders.standaloneSetup(MyController).build();

  @Before
  public void setUp() {
    MockitoAnnotations.initMocks(this);
  }

  @Test
  public void myTest() {
     MyFormBean formBean = new MyFormBean();
     formBean.setId(5L);
     ModelAndView mav = new ModelAndView();

     int id = 10;

     try {
       MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post("/my/zone/" + id).param("formData", formData.toString())).andReturn();
     } catch(Exception e) {
       fail(e.getMessage());
     }
}

MyFormBean中的id字段使用@NotNull

注释

所以我尝试了各种各样的排列(requestAttr,sessionAttr等,而不是param和其他一些),我无法让它工作。最好我在@Valid子句上得到例外。其他时候测试将通过而不实际进入方法。

我尝试过几个示例,但找不到任何具有特定方法签名的内容。

0 个答案:

没有答案