Как создать тест для почтового запроса

У меня есть метод, который отправляет 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());
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
530
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы используете весеннюю загрузку, вы можете использовать модульный тест 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, это руководство поможет вам больше. мокито учебник

Почему нельзя использовать методы param и contentType? (import org.springframework.test.web.servlet.MockMvc; )

Mark 07.04.2019 15:42

вы должны импортировать сообщение (путь) статически или использовать его => MockHttpServletRequestBuilder post = MockMvcRequestBuilders.post (путь);

Metin Bulak 07.04.2019 16:17

Другие вопросы по теме