Тестирование Spring Data Rest - PullRequest
0 голосов
/ 05 мая 2019

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

Нужно ли тестировать эти конечные точки с помощью интеграционных тестов? Если да, просьба привести примеры

Ответы [ 2 ]

1 голос
/ 06 мая 2019

вот фрагмент кода.прочитайте полный урок здесь

@Entity
@Table(name = "person")
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Size(min = 3, max = 20)
    private String name;

    // standard getters and setters, constructors
}

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
    public Employee findByName(String name);
}


@RunWith(SpringRunner.class)
@SpringBootTest(
  SpringBootTest.WebEnvironment.MOCK,
  classes = Application.class)
@AutoConfigureMockMvc
@TestPropertySource(
  locations = "classpath:application-integrationtest.properties")
public class EmployeeRestControllerIntegrationTest {

    @Autowired
    private MockMvc mvc;

    @Autowired
    private EmployeeRepository repository;

    @Test
public void givenEmployees_whenGetEmployees_thenStatus200()
  throws Exception {

    createTestEmployee("bob");

    mvc.perform(get("/api/employees")
      .contentType(MediaType.APPLICATION_JSON))
      .andExpect(status().isOk())
      .andExpect(content()
      .contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
      .andExpect(jsonPath("$[0].name", is("bob")));
}
}
0 голосов
/ 07 мая 2019

Помимо обычного тестирования, которое вы можете выполнять с помощью Spring (с использованием MockMvc, RestAssured, RestTemplate и т. Д.), Traverson - это прекрасный API для специального тестирования Spring HATEOAS. Вы можете использовать его для проверки правильности ссылок, которые вы возвращаете своим клиентам, см. пример

...