0
Я пытаюсь запустить unittest для jax-rs api, но я получаю сообщение об ошибке. Некоторые детали моей реализации:JAX-RS Jersey Junit Error
Контроллер!
@Path("/webservices")
@Produces(MediaType.APPLICATION_JSON)
public class AController {
public AController() {
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(
AConfiguration.class);
AutowireCapableBeanFactory acbFactory = applicationContext
.getAutowireCapableBeanFactory();
acbFactory.autowireBean(this);
}
@GET
public Response getAll() {
something hier...
Тест:
public class AControllerTest {
private static final int PORT = 8080;
private static final String LOCALHOST = "http://localhost";
private static final String GLOBAL_PATH = "/thesis/webservices/";
private static final URI URI = getBaseURI();
private HttpServer httpServer;
private Client client;
private static URI getBaseURI() {
return UriBuilder.fromUri(LOCALHOST).port(PORT).build();
}
@Before
public void setUp() throws IllegalArgumentException, NullPointerException,
IOException {
httpServer = com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory
.createHttpServer(URI);
httpServer.start();
}
@Test
public void testGetAll() {
client = Client.create(new DefaultClientConfig());
WebResource webResource = client.resource(getBaseURI());
ClientResponse response = webResource.path(GLOBAL_PATH)
.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
assertEquals(200, response.getStatus());
}
@After()
public void stopServer() {
httpServer.stop();
}
}
Мои <artifactId>thesis</artifactId>
в pom.xml
, когда я запустить тест, я получаю эту ошибку:
Failed tests: testGetAll(AControllerTest): expected:<200> but was:<404>
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.466s
[INFO] Finished at: Mon Mar 30 22:23:05 CEST 2015
[INFO] Final Memory: 18M/133M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project thesis: There are test failures.
[ERROR]
[ERROR] Please refer to pathto/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test) on project thesis: There are test failures.
есть кто-то идеи о том, проблема? Спасибо :-)
Ну, у вас есть 404 и ожидается 200. Я бы предложил проверить, будете ли вы обслуживать что-то на конечной точке, о которой вы думаете, что вы - – beresfordt
, о какой конечной точке вы имели в виду? Я вызвал запрос (GET) с commando, и я не получил ошибку. – emoleumassi
Непосредственно это выглядит так, как ваш контроллер сопоставляется с '/ webservices', но вы отправляете запрос на'/thesis/webservices/'. Где-то вам нужно сопоставить свой сервер гризли с '/ thesis' или изменить свой путь запроса только на'/webservices'. –