得到结果:
OK!
测试通过,说明我们的构建器没有问题!
现在我们来refactoring一下,考虑上面的类有什么问题?owner和balance不应该能直接被外界访问的吧。把他们改成两个私有变量,然后用2个get方法来读取他们。尽管xp explore上建议连getxxx和setxxx方法也该测试,我个人是觉得这样过于麻烦的:)所以省了。如果用get方法的话测试程序需要改变一下
改成形如:assertEquals("notyy",AccountA.getOwner());行了。
为account类增加2个get方法:
public String getOwner(){
return Owner;
}
public double getBalance(){
return Balance;
}
编译,运行test.bat
OK!一次通过。咱们继续。Account类可以给自己的帐户里加钱(credit),方法形如 Account.credit(double aMoney);
先写testcredit
public void testCredit(){
AccountA=new Account("notyy",100);
AccountB=new Account("bricks",200);
AccountA.credit(100);
//100+100=200
assertEquals(200,AccountA.getBalance(),2);
AccountB.credit(150);
//200+150=350
assertEquals(350,AccountB.getBalance(),2);
}
无法编译,因为account类没有credit方法,咱们给他加个方法骨架:
public void credit(double aMoney){
}
编译通过,运行test.bat,失败:
“expected <200.0> but <100.0>”
现在实现credit方法,如下:
public void credit(double aMoney){
Balance+=aMoney;
}
再次编译运行,OK!(2 tests)
哇,转眼写了这么长的文章了:)
累了。明天再写。
继续:)
再来实现扣减方法,和增加几乎一样,原样处理。