Как настроить провайдера Json для тестового клиента JAX-RS с помощью Spring? - PullRequest
2 голосов
/ 27 мая 2011

Я настроил службу JAX-RS с использованием Apache CXF, которую я хотел бы протестировать с помощью клиентского API Apache CXF JAX-RS. Сервер был настроен на использование Джексона в качестве поставщика json. Теперь я хотел бы сделать то же самое для клиента: то есть позволить Джексону обработать преобразование в / из json.

К сожалению, я не уверен, как «включить пружину» тестов, имея лишь поверхностные знания о Spring. Мне не помешала программная настройка провайдера в тесте, но я хотел бы знать, как это сделать через Spring. Так что вместо

@BeforeClass
public static void setup() {
    ProviderFactory.getSharedInstance().registerUserProvider(new JacksonJsonProvider());
}

Я бы хотел установить его в springConfiguration.xml (или что-то в этом роде :). При настройке серверной части springConfiguration.xml выглядел следующим образом.

<bean id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/>

<jaxrs:server id="restContainer" address="/">
    <jaxrs:serviceBeans>
        <ref bean="echoService"/>
    </jaxrs:serviceBeans>

    <jaxrs:providers>
        <ref bean="jsonProvider" />
    </jaxrs:providers>

    <jaxrs:extensionMappings>
        <entry key="json" value="application/json"/>
    </jaxrs:extensionMappings>
</jaxrs:server>

Я пытался просто добавить

<jaxrs:client id="restClient" >
    <jaxrs:providers>
        <ref bean="jsonProvider" />
    </jaxrs:providers>
</jaxrs:client>

к springConfiguration.xml, но это ничего не сделало. Не удивительно, поскольку я не настроил свои тесты JUnit для использования Spring ... Может кто-нибудь сказать мне, как это сделать, или указать мне какие-либо хорошие ресурсы, с помощью которых я мог бы собрать необходимую информацию?

1 Ответ

1 голос
/ 27 мая 2011

Следующие аннотации будут загружать контекст вашего приложения до запуска тестов.

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"applicationContext.xml"}) 
public class JaxRsTest {

  @Autowired
  MyBean myBean

  public void testMyBean() {
    //add some real tests here...
    assertNotNull(myBean)
  }

}
...