0

RESTEasyWebサービスを呼び出すクラスをテストしたいと思います。JunitはWebサービスを呼び出さないようです。サーバー側で確認しましたが、リクエストが届きませんでした。

public class EmpService {

  public List<Employee> getEmployees() {
      ClientRequest request = new ClientRequest("http://localhost:8080/rest/employees");
      request.accept(MediaType.APPLICATION_JSON);
      ClientResponse<Employees> response = null;

      try {
        response = request.get(Employees.class);
      } catch (Exception e) {
        e.printStackTrace();
      }

      Employees received = response.getEntity();
      if (received.getEmployees() == null){
        System.out.println("Employees is null");
      }
      return received.getEmployees();
    }
  }

私の意図はRESTサービスをテストすることではなく、クラスをテストすることですEmpService。そこで、次のJUnitテストケースを作成しました。

public class EmpServiceTest {

  @Test
  public void testGetEmployees() throws Exception {
    EmpService service = new EmpService();        
    List<Employees> employees = service.getEmployees();
    Assert.assertNotNull("Employees is null", employees);
  }

  @Test
  public void testREST() {
      ClientRequest request = new ClientRequest("http://localhost:8080/rest/employees");
      request.accept(MediaType.APPLICATION_JSON);
      ClientResponse<Employees> response = null;

      try {
        response = request.get(Employees.class);
      } catch (Exception e) {
        e.printStackTrace();
      }

      Employees received = response.getEntity();
      Assert.assertNotNull("Employees is null", received.getEmployees());
    }
}

ブラウザでRESTサービスをテストしましたが、正常に機能しています。しかし、Junitテストケースはそれを呼び出すことができず、エラーは報告されません。JUnitで直接RESTサービスをテストしようとしました。

4

1 に答える 1

0

問題はコンテンツタイプにあることがわかりました。JUnit 側には json マッパー クラスがありません。jackson json ライブラリを使用したところ、問題なく動作しました。

于 2012-09-13T14:23:30.107 に答える