У меня есть метод, который отправляет post
запрос на сторонний ресурс и возвращает CloseableHttpResponse
результат. Я пытаюсь (в первый раз) реализовать junit
тест для своего проекта. Я знаю, как тестировать методы, которые возвращают простые объекты, но я понятия не имею - как можно использовать аналогичный метод тестирования?
public CloseableHttpResponse POST(String path, Map<String, String> parameters) throws URISyntaxException, IOException {
List<NameValuePair> pairParameters = generateListOfNameValuePair(parameters);
URI uri = new URIBuilder()
.setScheme(SSL_SCHEME)
.setHost(HOST)
.setPath(path)
.build();
HttpRequestBase postMethod = new HttpPost(uri);
try {
((HttpPost) postMethod).setEntity(new UrlEncodedFormEntity(pairParameters, "UTF-8"));
} catch (UnsupportedEncodingException initE) {
initE.printStackTrace();
}
return session.getHttpClient().execute(postMethod, session.getHttpContext());
}
Если вы используете весеннюю загрузку, вы можете использовать модульный тест Mockito.
это пример, показывающий, как реализовать mockMvc и метод модульного тестирования.
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class StockPlanControllerTest {
@Autowired
public WebApplicationContext context;
public MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
}
@Test
public void POST(String path, Map<String, String> parameters) throws URISyntaxException, IOException {
mockMvc.perform(post(path)
.contentType(MediaType.APPLICATION_JSON)
.param("paramkey", "paramvalue"))
.andExpect(status().isOk());
}
Чтобы узнать больше о модульном тесте Mockito, это руководство поможет вам больше. мокито учебник
вы должны импортировать сообщение (путь) статически или использовать его => MockHttpServletRequestBuilder post = MockMvcRequestBuilders.post (путь);
Почему нельзя использовать методы
param
иcontentType
? (import org.springframework.test.web.servlet.MockMvc;
)