【问题标题】:Test case for a trans?跨性别的测试用例?
【发布时间】:2020-09-21 16:04:08
【问题描述】:

我在服务类中有传输方法,我想为此方法创建一个测试,以检查传输值是否有效。

我想测试的方法是这样的:

public void transfer(Account destiny, double value) {
        Account origin = new Account();
        if (value<= origin.getBalance()) {
            this.withdraw(value);
            destiny.setDeposit(value);
        }
    }

我现在开始修改测试。感谢理解。

【问题讨论】:

    标签: java spring junit mockito


    【解决方案1】:

    我首先建议您重构该方法。 您不想在方法中实例化/创建/查找原始帐户,而是希望将其传入。 所以你的新方法签名应该如下所示

    public void transfer(Account destiny, Account origin, double value) {
       ...
    }
    

    完成后,您的快乐路径测试用例应如下所示

    Account destiny = new Account();
    destiny.setBalance(100); // Some way to set balance
    Account origin = new Account();
    origin.setBalance(75); // Some way to set balance
    
    transfer(destiny,origin,25); //Call your method
    
    assertEquals(origin.getBalance(), 50);
    assertEquals(origin.getBalance(), 125);
    

    您也可以在这里测试原始余额小于转账金额的否定情况,因此转账不会发生,两个账户的余额都不会改变。

    【讨论】:

      【解决方案2】:

      这个怎么样,看看余额变了

      Account origin = new Account();
      double originBalance = origin.getBalance();
      
      transfer(destiny, value);
      
      Account current = new Account();
      double currentBalance = current.getBalance();
      
      // Balance should have changed
      assertNotEquals(originBalance, currentBalance, 1e-15);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-28
        相关资源
        最近更新 更多