【问题标题】:What can i write so I can test drawing money from my acount我可以写什么,这样我就可以测试从我的帐户中提取资金
【发布时间】:2019-12-09 21:33:46
【问题描述】:

我正在尝试编写一个 xunit 测试来测试函数退出,如果成功,函数应该返回 true,否则返回 false。

我可以写单元测试来测试我是否输入了一个值!我怎么写才能测试如果我提取的金额超过了存款,那么它会返回 false ?

BankAccount account = new Account();

account.Deposit(500);  // true

account.Withdraw(1000);  // false, not enough money on the account

public class BankAccount 
{

    private double balance = 0;

    public double GetBalance() { return this.balance; }  

    public bool Deposit(double amount) { return false; }  

    public bool Withdraw(double amount) { return false; }  // << test this

}

【问题讨论】:

    标签: unit-testing xunit


    【解决方案1】:

    首先,要执行此行为,我认为您的类中的撤消方法需要更改如下:

    public class BankAccount 
    {
    
        ...
    
        public bool Withdraw(double amount) 
        { 
            if ((balance - amount) < 0)
            {
                return false;
            }
            // withdraw procedure
        } 
    
    }
    

    那么对应的测试可以如下:

    [Fact]
    public void BankAccount_Withdraw_ShouldPreventOverdraft()
    {
        var account = new BankAccount();    //Initializes balance to 0
        Assert.False(account.Withdraw(1));
    }
    

    如果你想用存款来测试它。

    [Fact]
    public void BankAccount_Withdraw_ShouldPreventOverdraftAfterDeposit()
    {
        var account = new BankAccount();    //Initializes balance to 0
        account.Deposit(1)
        Assert.False(account.Withdraw(2));
    }
    

    作为测试提示:一般准则是预先设置您想要的环境(银行帐户的状态),执行正在测试的操作(取款大于余额),然后断言系统处于测试操作后的正确状态(来自Withdraw(...) 的响应为假)。

    【讨论】:

      猜你喜欢
      • 2015-05-06
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2011-08-07
      • 2017-02-22
      • 2012-10-11
      • 1970-01-01
      相关资源
      最近更新 更多