无法使用 MockMVC 测试控制器

时间:2021-06-01 18:33:12

标签: java junit mockito mockmvc

我正在尝试使用 MockMvc 测试我的控制器。在执行此 mockMvc.perform(requestBuilder).andReturn(); 时;它没有击中我的 API。所以我收到了这个回复。

org.junit.ComparisonFailure: The Mock Response object should be same 

 Expected :dGVzdDEyMw==

 Actual   :

这是我的控制器类

public class AddLibClientRestController
{

@Autowired
private AddAPIService addAPIService;


  @PostMapping(value = "/v1/add")
public String encrypt (@RequestParam final String plainText) throws GeneralSecurityException
{
    return addAPIService.add(plainText);
}

}

这是我的测试课

public class AddLibClientRestControllerTest
{


/** The instance of EncryptionAPIService. */
@MockBean
private AddAPIService mockAddAPIService;

@Autowired
private MockMvc mockMvc;


  @Test
  public void testEncryptWithMockObjectReturned () throws Exception
{
    final MockHttpServletRequestBuilder requestBuilder =
        post("/v1/add")
        .param("plainText", "test123");
    when(mockAddAPIService.add(anyString())).thenReturn("dGVzdDEyMw==");
    final MvcResult result = mockMvc.perform(requestBuilder).andReturn();
    assertEquals("The Mock Response object should be same", "dGVzdDEyMw==",
        result.getResponse().getContentAsString());
}

}

请提出一些建议,我在这里做错了什么。谢谢

0 个答案:

没有答案