Я разрабатываю облегченный сервер приложения с RESTful API реализованной с Джерси 2.12 и Джексоном 2.JerseyTest WebTarget POST поддержка
Я пишу тесты при разработке с использованием JUnit и JerseyTest. Я знаю, что мои ресурсы в Джерси работают так, как ожидалось, включая сортировку с JSON и JSON, потому что я тестировал их вручную с помощью плагина PostMan Chrome.
Моих тесты GET с параметрами запроса работают слишком хорошо, на основе, например, в Jersey documentation Вот упрощенный (я опустил шаблонный код, чтобы сделать идею более ясным) пример теста я хотел бы написать:
import static org.junit.Assert.assertTrue;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Response;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
import org.junit.Test;
import com.acme.api.rest.SessionsEndPoint;
import com.acme.api.rest.beans.UserCredentialsBean;
public class TestSession extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig(SessionsEndPoint.class);
}
@Test
public void test() {
UserCredentialsBean userCredentialsBean = new UserCredentialsBean();
userCredentialsBean.setUserId("alice");
userCredentialsBean.setPassword("secret");
WebTarget theTarget = target("sessions/login");
Response response = theTarget.request().post(Entity.entity(UserCredentialsBean.class, "application/json"));
assertTrue(true);
}
}
Основная проблема заключается в том, что я не могу найти документацию о том, как правильно использовать класс WebTarget для почтовых запросов. WebTarget theTarget построена правильно, но строка:
Response response = theTarget.request().post(Entity.entity(UserCredentialsBean.class, "application/json"));
не работает.
Как я понимаю, класс WebTarget является довольно новым в рамках JerseyTest. Есть ли кто-нибудь, кто может указать мне на любую недавнюю документацию, примеры или просто объяснить, как я могу заставить это работать?