Я пишу несколько тестов для проверки моего приложения.Я использую Spring Boot 2.0.2.
Изображение следующей ситуации со следующей сущностью
@Entity
public class Board extends BaseEntity {
@Column(length = 128)
@NotNull
private String name;
@OneToMany(cascade = CascadeType.REMOVE, orphanRemoval = true, mappedBy = "board")
private Set<Activity> activities;
... ...
}
и следующим хранилищем
@Repository
@RepositoryRestResource
public interface BoardRepository extends PagingAndSortingRepository<Board, Long> {}
Теперь первый шагиз теста, который я хочу сделать, это создать объект Board, поэтому мой тест начинается со следующего кода
import static org.junit.Assert.assertNotNull;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class BoardControllerRestIT {
@Autowired
private TestRestTemplate testRestTemplate;
@Autowired
private MockMvc mockMvc;
@Autowired
private ObjectMapper objectMapper;
@Test
public void testBoardCreation() throws Exception {
Board b = new Board();
b.setName("gianni");
String responseFromTestRestTemplate = testRestTemplate.postForObject("/crud/boards", b, String.class);
assertNotNull(responseFromTestRestTemplate);
ResultActions resultActions = mockMvc.perform(
post("/crud/boards")
.content(objectMapper.writeValueAsString(b))
.contentType(MediaType.APPLICATION_JSON));
resultActions.andExpect(MockMvcResultMatchers.status().is2xxSuccessful());
resultActions.andDo(mvcResult -> {
String responseFromMockMvc = mvcResult.getResponse().getContentAsString();
});
}
}
Проблема в том, что переменная responseFromTestRestTemplate заполнена обычным ответом покоя данных пружины.Вместо этого внутри переменной responseFromMockMvc тело пусто.
Я хочу использовать решение mockMvc только потому, что оно более эффективно с точки зрения тестов, но без тела невозможно продолжить.Подход с testRestTemplate был лишь попыткой понять, что происходит.
Что я делаю не так?Спасибо