不一样的思想~~ http://shop34712791.taobao.com MSN:wins0910@hotmail.com

mocktest

上一篇 / 下一篇  2007-09-16 20:22:55 / 个人分类:白盒测试

mocktest

src/junitbook.fine.tasting

Account.java

AccountManager.java

AccountService.java

MockAccountManager.java

testAccountService.java

--Account.java

package junitbook.fine.tasting;
public class Account{
 private long balance;
 public Account(String accountId,long initialBalance){
  this.balance = initialBalance;
  System.out.println("-------Account balance initialBalance:-----"+balance);
 }
 public void debit(long amount){
  this.balance -= amount;
  System.out.println("-------debit balance-amount:------"+balance);
 }
 public void credit(long amount){
  this.balance +=amount;
  System.out.println("-------credit balance+amount:------"+balance);
 }
 public long getBalance(){
  return this.balance;
 }
}

-----AccountManager.java

package junitbook.fine.tasting;

public interface AccountManager{
 Account findAccountForUser(String userId);
 void updateAccount(Account account);
 }

-----AccountService.java

package junitbook.fine.tasting;
public class AccountService{
 private AccountManager accountManager;
 
 private long amount;
 
 public void setAccountManager(MockAccountManager mockAccountManager, AccountManager manager){
  this.accountManager = manager;
 }
 
 public void transfer(String senderId,String beneficiaryId,long account){
  Account sender = this.accountManager.findAccountForUser(senderId);
  Account beneficiary =this.accountManager.findAccountForUser(beneficiaryId);
  sender.debit(amount);
  beneficiary.credit(amount);
  this.accountManager.updateAccount(sender);
  this.accountManager.updateAccount(beneficiary);
 }
}

----MockAccountManager.java

package junitbook.fine.tasting;
import java.util.Hashtable;
public class MockAccountManager implements AccountManager{
 private Hashtable accounts = new Hashtable();
 
 public void addAccount(String userId,Account account){
 this.accounts.put(userId,account);
 }
 
 public Account findAccountForUser(String userId){
  return (Account)this.accounts.get(userId);
 }
 
 public void updateAccount(Account account){
 }

}

----testAccountService.java

package junitbook.fine.tasting;
import junit.framework.*;
public class testAccountService extends TestCase{

 public void testTransferOk(){
  MockAccountManager mockAccountManager = new MockAccountManager();
  Account senderAccount = new Account("1",200);
  System.out.println("-------senderAccount:------"+senderAccount);
  Account beneficiaryAccount = new Account("2",100);
  System.out.println("-------senderAccount:-----"+beneficiaryAccount);
  mockAccountManager.addAccount("1",senderAccount);
  mockAccountManager.addAccount("2",beneficiaryAccount);
  System.out.println("-------mockAccountManager:------"+mockAccountManager);
    
  AccountService accountService = new AccountService();
  System.out.println("-------accountService1:------"+accountService);
  accountService.setAccountManager(mockAccountManager, mockAccountManager);
  accountService.transfer("1","2",50);
  System.out.println("-------accountService2:-------"+accountService);
  
  assertEquals(200,senderAccount.getBalance());
  assertEquals(100,beneficiaryAccount.getBalance());
 }

}

 

 


TAG: 白盒测试

 

评分:0

我来说两句

Open Toolbar