В моей программе два интеграционных теста, и, к сожалению, оба не работают.Я не знаю, что это хорошая идея написать обе проблемы в одном случае, но я пытаюсь.Во-первых, я показываю свой тест интеграции БД:
@RunWith(SpringRunner.class)
@DataJpaTest
public class TeamDatabaseIntegrationTest {
@MockBean
private TeamRepository teamRepository;
@Autowired
private TestEntityManager testEntityManager;
@Test
public void testDb() {
Team team = new Team(1L, "teamName", "teamDescription", "krakow", 7);
Team team2 = new Team(2L, "teamName", "teamDescription", "krakow", 7);
testEntityManager.persist(team);
testEntityManager.flush();
Iterable<Team> teams = teamRepository.findAll();
assertThat(teams).hasSize(2).contains(team, team2);
}
В этом тесте я добавляю 2 элемента в свою базу данных и ожидаю, что этот тест в порядке, но он возвращает это:
java.lang.AssertionError:
Expected size:<2> but was:<0> in:
<[]>
В моемВторой тест Я хочу проверить метод контроллера показать все элементы.Это мой метод в cotroller:
@GetMapping("/teams")
public List<TeamDto> findAll() {
return teamService.findAll();
}
Мой метод тестирования для этого выглядит следующим образом: @SpringJUnitWebConfig (classes = CrewApplication.class)
public class TeamControllerMethodIntegrationTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setup() throws Exception
{
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
MockitoAnnotations.initMocks(this);
}
@Test
void getAccount() throws Exception {
this.mockMvc.perform(get("/teams")
.accept(MediaType.parseMediaType("application/json;charset=UTF-8")))
.andExpect(status().isOk())
.andExpect(content().contentType("application/json;charset=UTF-8"))
.andExpect(jsonPath("$version").value(null))
.andExpect(jsonPath("$name").value("Apacze"))
.andExpect(jsonPath("$createOn").value(null))
.andExpect(jsonPath("modifiedOn").value(null))
.andExpect(jsonPath("$description").value("grupa programistow"))
.andExpect(jsonPath("$city").value("Włocławek"))
.andExpect(jsonPath("$headcount").value(null));
}
}
В этом случае у меня есть другая ошибка,
java.lang.NullPointerException
at com.softwaremind.crew.people.integrationTest.TeamControllerMethodIntegrationTest.getAccount
Я борюсь с этими тестами в течение недели, и я действительно не знаю, как это исправить.