如何更改此Spring Test Framework Test以使用JSON返回?

时间:2013-06-11 13:45:52

标签: spring spring-mvc spring-test-mvc

我正在尝试更改以下Spring Test Framework以测试以下json返回:

{"user":"John ","name":"JohnSmith"}

这是我的测试代码,我只是不知道如何更改它以检查JSON和JSON中的值。如果有人可以告诉我要改变什么,那就太好了。谢谢

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {WebMVCConfig.class})
@WebAppConfiguration
public class TestHelloWorldWeb
{
    @Autowired
    private WebApplicationContext wac;

    private MockMvc mockMvc;

    @Before
    public void setup()
    {
        this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
    }

    @Test
    public void getFoo() throws Exception
    {
        this.mockMvc.perform(get("/ask")
                .accept(MediaType.TEXT_HTML))
                .andExpect(status().isOk())
                .andExpect(view().name("helloworld"))
                .andExpect(MockMvcResultMatchers.model().attribute("user", "JohnSmith"))
        ;


    }
}

1 个答案:

答案 0 :(得分:1)

.andExpect(jsonPath("$.user").value("john"));

依赖:

<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>0.8.1</version>
</dependency>

和一个像这样的静态导入

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;

添加静态方法......