Я хотел бы написать интеграционный тест, который принимает повторные запросы и обрабатывает их с помощью JPA
- Создать запись в базе данных h2
- Проверить, что запись может быть получена черезrestful service (из базы данных h2)
Как я могу провести интеграционное тестирование всего приложения через конечные точки restful службы, разрешая JPA CRUD базу данных h2?
Что-то похожее на следующее: (бесстыдноукрадено и изменено у mkyong).
Я уверен, что другие, должно быть, уже обдумали это и либо делают это, либо имеют лучший подход, либо причину нет.
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@DataJpaTest // This breaks
public class BookRepositoryTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private BookRepository repository;
@Test
public void testFindByName() {
entityManager.persist(new Book("C++"));
List<Book> books = repository.findByName("C++");
assertEquals(1, books.size());
assertThat(books).extracting(Book::getName).containsOnly("C++");
}
}
java.lang.IllegalStateException:
Configuration error: found multiple declarations of @BootstrapWith for test class
[com.mkyong.BookRepositoryTest]: [
@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.context.SpringBootTestContextBootstrapper)
,
@org.springframework.test.context.BootstrapWith(value=class org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper)
]