Могу ли я использовать ссылку на Jackson ObjectMapper при регистрации JacksonFeature для JerseyTest? - PullRequest
0 голосов
/ 13 февраля 2019

Можно ли как-то повторно использовать ссылку на Jackson ObjectMapper в моих тестовых классах, когда я тестирую свои службы отдыха с использованием тестовой среды Джерси.

Я зарегистрировал JacksonFeature в своем абстрактном классе, из которого расширяются мои тестовые классы.

public abstract class AbstractRestIntegrationTest extends JerseyTest {

    @Override
    protected Application configure() {

        ResourceConfig resourceConfig = new ResourceConfig(getResourceClass());
        resourceConfig.register(JacksonFeature.class);
        resourceConfig.register(MultiPartFeature.class);
        return resourceConfig;
    }
}

EDIT

В моем тестовом классе я позвонил в службу отдыха, которая возвращает мне json.Затем я хочу проанализировать этот JSON по Джексону и проверить, содержит ли он объекты.И мой вопрос, могу ли я повторно использовать этот ObjectMapper в тестовом методе из Джерси, когда я регистрирую JacksonFeature.

public class ManagedElementIntegrationTest extends AbstractRestIntegrationTest {

       @Override
    protected Class<?> getResourceClass() {
        return ManagedElementRestService.class;
    }

    @Test
    public void testGetManagedElementById() throws IOException {
        IManagedElementService managedElementService = getBeanOfClass(IManagedElementService.class);

        ManagedElement me = prepareManagedElementObject();

        try {
            when(managedElementService.getUpdatedApplication(anyString())).thenReturn(me);
        } catch (ManagedElementNotFoundException e) {
            fail("Exception not expected: " + e);
        }

        String response = target("me/app").request().accept(MediaType.APPLICATION_JSON).get(String.class);
        ObjectMapper mapper = new ObjectMapper();
        JsonNode actualObj = mapper.readTree(response);
        assertNotNull(actualObj);
        assertNotNull(actualObj.get("mapPosition"));
        assertNull(actualObj.get("alarms"));

        // code continues below.
    }
}
...