我使用org.springframework.test.web.servlet.MockMvc调用Spring控制器。
看起来像这样:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml" })
public class TestController {
@Mock
private TestService testService;
@InjectMocks
private TestController testController;
private MockMvc mockMvc;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
this.setMockMvc(MockMvcBuilders.standaloneSetup(testtController).build());
}
@Test
public void test() throws Exception {
this.mockMvc.perform(post("/trans/").param("name", "grep")).andExpect(status().isOk());
}
一切看起来都很好。我也可以通过params。 但是现在我需要发送JSON(String)而不是params。我怎么能这样做?
答案 0 :(得分:3)
您应该使用.content()
代替.param()
:
post("/trans/").content("{\"name\": \"grep\"}")
答案 1 :(得分:1)
使用.content()
代替.param()
,并应设置contentType
post("/trans/").contentType(MediaType.APPLICATION_JSON).content("{\"name\": \"grep\"}")