如何为这种方法编写junit测试用例?

时间:2017-05-10 14:20:11

标签: java testing junit mockito

这是我的方法。

@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class XYZ {
    @GET
    @Path("/workflow")
    public Response getWorkflowsData() {    
        Object output=new Object();
        return Response.ok().entity(output).build();
        // or defination
    }
}

我想这样做。

@Test
public void getWorkflowsDataTest() throws Exception{
     MvcResult result = mockMvc
            .perform(MockMvcRequestBuilders.get("/workflow")).andReturn();
     String finalresult= result.getResponse().getContentAsString();
     assertEquals(200, result.getResponse().getStatus());
}

由此我无法进入实际的方法。

1 个答案:

答案 0 :(得分:1)

由于您使用的是MockMvcRequestBuilders,因此您的测试类应该有@SpringJUnit4ClassRunner注释,并且应该指定@ContextConfiguration

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {YOUR_CONTEXT_CLASS_GOES_HERE.class})
@WebAppConfiguration
public class MyTestClass {

     @Resource
     private WebApplicationContext webApplicationContext;

     private MockMvc mockMvc;

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

     @Test
     public void getWorkflowsDataTest() throws Exception{
         MvcResult result = mockMvc
            .perform(MockMvcRequestBuilders.get("/workflow")).andReturn();
         String finalresult= result.getResponse().getContentAsString();
         assertEquals(200, result.getResponse().getStatus());
    }
}