我正在尝试使用 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());
}
}
请提出一些建议,我在这里做错了什么。谢谢