2016-05-21 11 views
0

私はWeb開発とJavaの初心者です。私はxmlを使ってこのrest-apiを開発しました。これはうまく動作します(NetBeans)。しかし、私はユニットテストを実行する必要があります。誰かが私を導くことができますか?xmlで書かれたrest-APIのユニットテスト

おかげで、事前

@Path("/users") 
public class users{ 
    String host=HelperClass.host; 
    String uName=HelperClass.uName; 
    String pass=HelperClass.pass; 
    Connection con; 

/** 
* Gets all the users in the database with the password. 
* @return 
* @throws SQLException 
*/ 
@GET 
@Path("/getusers") 
@Produces(MediaType.APPLICATION_XML) 
public UserList getAllUsers() throws SQLException { 
    UserList users; 
    try 
    {    
     con=DriverManager.getConnection(host, uName, pass); 
     Statement stmt=con.createStatement(); 
     String Sql="SELECT * FROM USERS"; 
     ResultSet rs=stmt.executeQuery(Sql); 
     users=new UserList(); 
     users.setUsers(new ArrayList<Users>()); 

     while(rs.next()) 
     { 
      Users newuser=new Users(); 
      newuser.setUsername(rs.getString("username")); 
      newuser.setPassword(rs.getString("password")); 
      users.getUsers().add(newuser); 

     } 
    } 
    catch(Exception ex) 
    { 
     users=new UserList(); 

    } 
    finally 
    { 
     con.close(); 
    } 
    return users; 
} 

/** 
* Gets the specific user in the database. 
* @param userId 
* @return 
* @throws SQLException 
*/ 
@GET 
@Path("/getuser/{userId}") 
@Produces(MediaType.APPLICATION_XML) 
public Users getUser(@PathParam("userId") String userId) throws SQLException 
{ 
    Users user; 
    try 
    { 
     con=DriverManager.getConnection(host, uName, pass); 
     Statement stmt=con.createStatement(); 
     String Sql="SELECT * FROM USERS where USERNAME='"+userId+"'"; 
     ResultSet rs=stmt.executeQuery(Sql); 
     user=new Users(); 

     while(rs.next()) 
     { 
      user.setUsername(rs.getString("username")); 
      user.setPassword(rs.getString("password"));     
     } 
    } 
    catch(Exception ex) 
    { 
     user=new Users(); 
    } 
    finally 
    { 
     con.close(); 
    } 
    return user; 
} 

@POST 
@Path("/setuser") 
@Consumes({MediaType.APPLICATION_XML}) 
@Produces({MediaType.TEXT_PLAIN}) 
public String setUser(Users user) throws SQLException 
{ 
    try 
    { 
     con=DriverManager.getConnection(host, uName, pass); 
     Statement stmt=con.createStatement(); 
     String Sql="INSERT INTO USERS VALUES('"+user.getUsername()+"','"+user.getPassword()+"')"; 
     stmt.executeUpdate(Sql); 
    } 
    catch(Exception ex) 
    { 
     return "error"; 
    } 
    finally 
    { 
     con.close(); 
    } 
    return "done"; 
} 

@DELETE 
@Path("/deleteuser/{userId}") 
@Produces({MediaType.TEXT_PLAIN}) 
public String deleteUser(@PathParam("userId") String userId) throws SQLException 
{ 
    try 
    { 
     con=DriverManager.getConnection(host, uName, pass); 
     Statement stmt=con.createStatement();    


     String Sql="Delete from replies where REPLY_ID='"+userId+"'"; 
     stmt.executeUpdate(Sql); 

     Sql="Delete from comments where USER_ID='"+userId+"'"; 
     stmt.executeUpdate(Sql); 

     Sql="Delete from USERINFO where USERINFO_ID='"+userId+"'"; 
     stmt.executeUpdate(Sql); 



     Sql="Delete from USERS where USERNAME='"+userId+"'"; 
     stmt.executeUpdate(Sql); 
    } 
    catch(Exception ex) 
    { 
     return "error"; 
    } 
    finally 
    { 
     con.close(); 
    } 
    return "done"; 
} 

}

答えて

0

にあなたの残りのAPIをテストするには、2つの方法があります。

1>は直接Junitsのメソッドを呼び出し、結果

を確認2> http GET/POSTメソッドを使用してAPIを呼び出し、応答を確認します。 HTTP GETメソッドを使用してAPIを呼び出すための

は、あなたは例の下に参照することがあります。

String url = "http://www.google.com/search?q=httpClient"; 

HttpClient client = HttpClientBuilder.create().build(); 
HttpGet request = new HttpGet(url); 

// add request header 
request.addHeader("User-Agent", USER_AGENT); 
HttpResponse response = client.execute(request); 

System.out.println("Response Code : " 
      + response.getStatusLine().getStatusCode()); 

BufferedReader rd = new BufferedReader(
    new InputStreamReader(response.getEntity().getContent())); 

StringBuffer result = new StringBuffer(); 
String line = ""; 
while ((line = rd.readLine()) != null) { 
    result.append(line); 
} 

他の例については、http://www.mkyong.com/java/apache-httpclient-examples/

感謝をご覧ください。

+0

Junitで呼び出す例を教えてください。また、2番目の方法である単体テストアプローチですか?ありがとう。 – Chid

+1

JAX-RSアプリケーションをコンテナ内で実行し、それに対してHTTPリクエストを実行する単体テストの作成については、あなたの答えには何もありません。 –

関連する問題