最初からJerseyを使っていなくて、普通のServlet→Jerseyに変換というようなことをしたい場合、ServletContextListenerにアプリケーションの初期化コードとかを書いていてうまくテストできなかったりする。まあ、そのあたりもJersey化すれば良いのだけども、いじれない場合はテストコンテナにそのListenerを設定すれば良さげ。
JerseyTestは
public JerseyTest(AppDescriptor ad) throws TestContainerException { ... }
というようなコンストラクタを持っていて、AppDescriptorはアプリケーションの設定クラスになっている。サブクラスのWebAppDescriptorはサーブレットコンテナの設定クラスになっているので、
public class SomeResourceTest extends JerseyTest { public SomeResourceTest() { super( new WebAppDescriptor.Builder("sample") .contextListenerClass(sample.servlet.SomeServletContextListener.class).build() ); } }
てな感じにするとSomeServletContextListenerを設定した状態でテストコンテナを起動してくれる。WebAppDescriptorに何を設定できるかはソースコードを見る。FilterやContext Paramも設定できそう。