Это будет хороший компонентный тест, например, тестирование вашего веб-сервиса и его сопровождающее постоянное хранилище как «тестируемая система».Вам нужно будет раскрутить базу данных как зависимый сервис.Выгода будет состоять в том, что ваш тест будет также охватывать любую схему жидкостной базы / пролетного пути, которую вы определите в своем сервисе.Я не знаю, какую базу данных вы используете, но есть базы данных в памяти, такие как h2, встроенные базы данных Postgres, или почему бы не запустить образ докера с вашим конкретным постоянным хранилищем (вы можете позволить вашему тесту автоматически запускать контейнер докера с помощью докера-Джава)?
Что касается тестирования самого API веб-службы, я бы остановился на простых JUnit и http-matchers (https://github.com/valid4j/http-matchers).
Пример теста компонента будет иметь такую структуру:
public class MyWebServiceTest {
private static final DatabaseRule DB = new MyDatabaseRule();
private static final DropwizardAppRule<AppConfig> APP = new DropwizardAppRule<>(App.class,
resourceFilePath("config.yml"), config("db.url", DB.url()));
@ClassRule
public static final RuleChain RULE = RuleChain.outerRule(DB).around(APP);
private final Client client = ClientBuilder.newClient();
@Test
public void exampleTest() {
Response r = client.target("http://localhost:"+APP.getLocalPort()+"/path").request().post(...);
assertThat(response, hasStatus(OK));
assertThat(response, ...);
}
}