Как настроить мой проект для запуска интеграционных тестов с версией Spring 3.2.4? - PullRequest
0 голосов
/ 22 апреля 2020

Я работаю над устаревшим проектом, в котором нет тестов. Мы хотим добавить интеграционные тесты для наших сервисов. Службы взаимодействуют с другими службами, а также с базой данных.

Я могу справиться с выполнением тестов junit, чтобы смоделировать вызовы служб и вызовы базы данных, чтобы вернуть все, что я хочу, но мне интересно, возможно ли запустить реальный интеграционный тест, в котором он взаимодействует с реальной базой данных dev и с другими сервисами проекта.

Компоненты определены в xml файлах с некоторыми заполнителями. Я ищу направление на то, что искать, и если это вообще возможно в этой весенней версии.

Спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Для настройки вашего теста вы можете сделать первый класс SwitchCase и расширить его в классе теста.



import java.util.Random;

import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;



@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class SwitchCase{

 *** here you can have tour variables and do @Autowired in yours service

}


public class YoursTestClass  extends SwitchCase{

    @Test
    public void save() throws Exception {

    }
}

Для выполнения имитаций вы можете использовать Mockito.

@WebMvcTest
@AutoConfigureMockMvc
public class YouClass {

 @Autowired
 MockMvc mock

 MockHttpServelet request = MockMvcRequestBuilders
 .post("http/....")
 .contentTupe(**pass yout content type **);

 mock.perform(request)
 .andExpect(MockMvcResultMatchers.status().isCreated())
 .andExpect(MockMvcResultMatchers.jsonPath("id").value(7)
}

Это просто пример для руководства, но было бы хорошо взглянуть на документацию по mockito

...