Интеграционный тест для методов Service / Rest в Java - PullRequest
0 голосов
/ 08 июня 2018

Как я упоминаю в заголовке, мне нужно создать интеграционный тест.

Это мой первый тест в моей жизни.

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

Это мой тест:

 @SpringBootTest(
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = CrewApplication.class)
@AutoConfigureMockMvc
@TestPropertySource(locations = "classpath:TeamController")
public class TeamIntegrationTest {

    @Autowired
    MockMvc mockMvc;

    @Test
    public void integrationTeamTest() throws Exception {
        MvcResult mvcResult = mockMvc.perform(
                MockMvcRequestBuilders.get("/teams")
                .accept(MediaType.APPLICATION_JSON)
        ).andReturn();

        System.out.println(mvcResult.getResponse());
    }
}

И это мой метод отдыха:

@RestController
public class TeamController {

    private final TeamService teamService;
    private final PersonService personService;

    @Autowired
    public TeamController(TeamService teamService, PersonService personService) {
        this.teamService = teamService;
        this.personService = personService;
    }

    @GetMapping("/teams")
    public List<TeamDto> findAll() {
        return teamService.findAll();
    }

Метод работы, тест Junit работает только эта интеграцияошибка выброса:

java.lang.NullPointerException

1 Ответ

0 голосов
/ 08 июня 2018

Вы смешиваете модульные тесты Spring и интеграционный тест Spring.

Если вы хотите выполнить тест Integrations, вам нужно вызвать API.

@RunWith(SpringRunner.class)
@SpringBootTest(
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = CrewApplication.class)

public class TeamIntegrationTest {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void integrationTeamTest() throws Exception {
        String body = this.restTemplate.getForObject("/teams", String.class);

        assertThat(body).isEqualTo("TEAM REPRESENTATION AS STRING");
    }
}

Если вынужна дополнительная информация, посетите Spring Documentation .

...