??????????????????????????????????????????????????????????????????????????????????????????????????????

????????????Unit Testing??????????????????????????е???????????????????????????ж??????????????????????????????????????????????????????????????????????“??????”???????????“??????”??????????????????????????????????????????????????????????е???飬??????????????????????????????????????????????У???????????????????????????????????????????????????嵽?????????????壬??????????????????????ι??????

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

????????????????????????XUnit?????????????????????????Java?????????JUnit??.Net????????????NUnit??????Щ???????????????????????Cantata??AdaTest????????????C/C++????????????????????Ada?????????????????????????????????????????

????????п?????????????????????????????????????????????????飬???б????????????????????????????????????????????漲???????????

?????????????????饗Stub Module??????????饗Drive Module??????????????????????????????????????????????????????????????????????е????????????????????????????????????????????????顣????????????У?????????????????????????????????????????????????????????????????????????????“??????”?????????????????????Щ???????????????????????н???????????顣?????????????????????????????????????У?????????????????????????????У?????????????????????????????????????顣?????????????????????????????н????????????飬????????????н????????????????????????E-mail?????????????????

??????????????????????Java???????????????????????????????????????????ɡ?????????CaseCheck.java??Account.java???MoneyTran.java??????CaseCheck.java????????飬Accout.java?????????????MoneyTran.java?????顣?????г??????????????

/* Module name: CaseCheck.java this module servers as driven module; */
public class CaseCheck{
public static void main(String[] args){
Account TomAccount=new Account(8000);
if(8000!=TomAccount.checkBalance()){
System.out.println("TomAccount Construction error!");}
System.out.println("Total balance of TomAccount is "+TomAccount.checkBalance() +" Withdraw 1000 from TomAccount "+TomAccount.withdraw(1000));
System.out.println("Now??total balance of TomAccount is "+TomAccount.checkBalance() +" Withdraw 8000 from TomAccount "+TomAccount.withdraw(8000));
System.out.println("Desopit 2000 to Tom's Account.");
TomAccount.deposit(2000);
if(9000!=TomAccount.checkBalance()){
System.out.println("Account class deposit method error!");}
System.out.println("Now Tom's Account has Rmb "+TomAccount.checkBalance()+" .It can change into USDollar "+TomAccount.toDollar());
}
}
/* Module name: Account.java this module servers as software unit for test; */
public class Account{
private int sum;
public Account(int num){
sum=num;
}
public String withdraw(int num){
if(num>sum){return "Overdraft.Operation cancelled."+" ";}else{
sum-=num;
return "Withdraw Success."+" ";}}
public void deposit(int num){
sum+=num;}
public int checkBalance(){return sum;}
public int toDollar(){
double rate=MoneyTran.RmbtoDollar();
return (int) (rate*sum);}
}
/* Module name:MoneyTran.java this module servers as stub module; */
public class MoneyTran{
static double RmbtoDollar(){return 0.12081964;}
}