Arquillian で JAX-RS のテストを書くときはこんな感じでどうだろう
Arqullian を使っている。
ちょっとずつ書き方がわかってきた気がする。
サンプルコード
@RunWith(Arquillian.class) @UsingDataSet("dataset.yml") public class CountryResourceTest { @ArquillianResource private URL baseUrl; private URI countryUri; @Before public void init() throws Exception { countryUri = UriBuilder.fromUri(baseUrl.toURI()) .path(ApplicationConfig.class.getAnnotation(ApplicationPath.class).value()) .path(CountryResource.class.getAnnotation(Path.class).value()).build(); } @Deployment public static WebArchive createDeployment() { return ShrinkWrap .create(WebArchive.class) .addClasses(Country.class, CountryRepository.class, ApplicationConfig.class, CountryResource.class) .addAsResource("test-persistence.xml", "META-INF/persistence.xml") .addAsWebInfResource("test-h2-ds.xml"); } @Test @InSequence(1) public void setupDatabase() { // @RunAsClient でデータベースを初期化するための仮メソッド } @Test @InSequence(2) @RunAsClient public void test() throws Exception { List<Country> list = ClientBuilder.newClient() .target(countryUri) .request(MediaType.APPLICATION_JSON) .get(new GenericType<List<Country>>() {}); assertThat(list.size(), is(3)); } }