WEB开发网
开发学院软件开发C语言 NUnit快速入门 阅读

NUnit快速入门

 2009-04-21 08:26:11 来源:WEB开发网   
核心提示: TransferWithInsufficentFunds: InsufficientFundsException was expected”,我们来再次修改Account的代码,NUnit快速入门(4),象下面这样修改TransferFunds()方法:public void

TransferWithInsufficentFunds: InsufficientFundsException was expected”。我们来再次修改Account的代码,象下面这样修改TransferFunds()方法:

public void TransferFunds(Account destination, float amount) {
destination.Deposit(amount);
if(balance - amount < minimumBalance)
throw new InsufficientFundsException();
Withdraw(amount);
}

编译并运行测试——绿了。成功!不过等等,看看我们刚写的代码,我们会发现银行在每一笔不成功的转账操作时都亏钱了。让我们来写一个测试来确认我们的猜测。添加这个测试方法:

[Test]
public void TransferWithInsufficientFundsAtomicity() {
Account source = new Account();
source.Deposit(200.00F);
Account destination = new Account();
destination.Deposit(150.00F);
try {
source.TransferFunds(destination, 300.00F);
}
catch(InsufficientFundsException expected) {
}
Assert.AreEqual(200.00F,source.Balance);
Assert.AreEqual(150.00F,destination.Balance);
}

我们测试了方法的交易属性——是否所有的操作都成功了。编译并运行——红条。是的,我们平白无故地损失了300块钱——source账户有正确的余额150.00,但destination账户显示:$450.00。我们该如何修改?我们能够只将最小余额检查的调用放到数据更新的前面么:

public void TransferFunds(Account destination, float amount) {
if(balance - amount < minimumBalance) {
throw new InsufficientFundsException();
}
destination.Deposit(amount);
Withdraw(amount);
}

上一页  1 2 3 4 5  下一页

Tags:NUnit 快速 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接