1

POSTメソッドを介して Customer を作成する RESTful Web サービスをエミュレートする簡単なテスト クラスを作成しようとしています。以下は で失敗しassertEquals400 Bad Request応答が返ってきました。デバッガーを使用してスタック トレースを観察できません。ただし、コンソールには次のように表示されます...

情報: [localhost:9998] にバインドされたリスナーを開始しました
情報: [HttpServer] 開始しました。

public class SimpleTest extends JerseyTestNg.ContainerPerMethodTest {

    public class Customer {
        public Customer() {}

        public Customer(String name, int id) {
            this.name = name;
            this.id = id;
        }

        @JsonProperty("name")
        private String name;

        @JsonProperty("id")
        private int id;
    }

    @Override
    protected Application configure() {
        return new ResourceConfig(MyService.class);
    }

    @Path("hello")
    public static class MyService {
        @POST
        @Consumes(MediaType.APPLICATION_JSON)
        public final Response createCustomer(Customer customer) {
            System.out.println("Customer data: " + customer.toString());
            return Response.ok("customer created").build();
        }
    }

    @Test
    private void test() {
        String json =   "{" +
                "\"name\": \"bill\", " +
                "\"id\": 4" +
                "}";
        final Response response = target("hello").request(MediaType.APPLICATION_JSON_TYPE).post(Entity.json(json));
        System.out.println(response.toString());
        assertEquals(response.getStatus(), 200);
    }
}
4

1 に答える 1