?????????????????????????д???????????????????????????????????????????????????????TestCase?????д?Щassert?????????ɡ????????????????????????Java????дmain???????????????????????????仰????????????д????δ???????????е????????????????????????????????????????????????????????????е??????????????дSSH??????????????????????????DAO?????????????????????Щ???????????DAO???????????????????????????

?????????????????????????????????е???壬????????????????????????????

??????????????

????????????

???????????????

?????????????κε????????????

???????????ú?????????????

???????????????£?????????????????????????????У????????????????????????????????????????????????????е??????????????????????????????е???????????????????????????????????е???????ù滮?????????????

???????????????????????WebService?????????????????????????????????SOA??????????????????????е?????????????????????????????????????WebService??鷳??????????????????????????????????????е??????????WebService????????????????е??

???????????????????EasyMock??????????????????????????壬EasyMock???????????Easy?????Mock??????????????????????????У?EasyMock????????????????????????????????????????WebService?????????????????Mock???????record?????????????????????????????????replay????????????????????????????????????????????????????????????????verify????????????????У?Mock????????????record??ε??趨??????????????????????????????WebService??????????

???????WebService?????????????WSDL????????????Щ???????????stub class??stub class?????????ServiceClientBuilder?????ServiceClient?????ЩModel???????????ServiceClient????

??????????????У?????????????????????????

public interface ServiceClient {
    public List<String> getGroupsByUser(String username);
}

   ??????????У?????????????????????????

public class UserDao {
 
 private ServiceClient client;
 
 public boolean validate(String username) {
     List<String> groups = client.getGroupsByUser(username);
     for (String group : groups) {
         if (group.equals("admin")) {
             return true;
         }
     }
 
     return false;
 }
 
 /**
  * Used by Unit Test and other injection work
  * @param client
  */
 public void setClient(ServiceClient client) {
  this.client = client;
 }
}