Я бы хотел, чтобы тестовый пример, написанный ниже, был «чистым» тестом, который автоматически заменяет изменения базы данных после теста.Написание «чистых» интеграционных тестов - REST с использованием джерси 2 и весной
@Test
public void testUpdate(){
ClientConfig clientConfig = new ClientConfig();
clientConfig.register(JacksonFeature.class);
Client client = ClientBuilder.newClient(clientConfig);
Name name = new Name(1L,"Updated","Updated");
Response response = client
.target("http://localhost:8080/jersey-spring/name/").request().header("Content-type", MediaType.APPLICATION_JSON).post(Entity.json(name));
Assert.assertTrue(response.getStatus() == 200);
}
Услуги по обеспечению безопасности развертываются с использованием jetty-maven-plugin
во время испытаний на интеграцию. Проблема, с которой я столкнулся сейчас, заключается в том, что я не могу использовать тесты spring test
transactional
, что означает, что любое изменение состояния в базе данных должно быть очищено вручную после испытаний, которые очень громоздки.
Таким образом, мой вопрос заключается в том, что является рекомендуемым подходом к проведению «чистых» интеграционных тестов при использовании jersey
в качестве поставщика REST. Я также пытался использовать JerseyTest
, а также сталкивался с той же проблемой.
По различным причинам я не могу заменить Джерси весной MVC.
Update
- Там не насмешливый участие. Тест проходит от конца до конца.
- Мне нравится быть рядом с производственной конфигурацией для тестов интеграции, и поэтому для интеграционных тестов не используется БД в памяти.
Я тоже пришел к такому же выводу. Спасибо за совет докера. В нашем коде мы склонны использовать множество процедур (наследие), поэтому блок БД для меня не является вариантом. Думаю, докер + оракул - это путь. – ArunM
Почему у вас есть процедуры, препятствующие использованию DBUnit? Вы должны инициализировать свою БД (процедуры включены) перед комплектом либо с помощью сценария (например, schema.sql), либо путем запуска средства миграции. После этого вы можете заполнить и проверить свои данные с помощью DBUnit. Поверьте мне, был там, сделал это :) –