BankAccount不起作用

BankAccount不起作用

我的代码给出了junitframeworkComparisonFailure:预期为chequing2,但为空。我正在使用单元测试来检查我的代码,下面也有。非常感谢你。它还有其他错误,但这是我最想解决的错误。很抱歉,如果我的问题很明显,我最近才刚开始。

public class BankAccount {
private String accountNumber;
private double balance;
private double withdrawalFee;
private double annualInterestRate;
private String BankAccount;

public BankAccount(String account_Number) {
     account_Number = accountNumber ;

}
public BankAccount(String account_Number,double iNITIAL_BALANCE)
{

    account_Number = accountNumber ;
    iNITIAL_BALANCE = balance;
}

public BankAccount(String account_Number, double iNITIAL_BALANCE, double wITHDRAWAL_FEE,
        double aNNUAL_INTEREST_RATE) {
    account_Number = accountNumber ;
    iNITIAL_BALANCE = balance;
    aNNUAL_INTEREST_RATE = annualInterestRate ;
    wITHDRAWAL_FEE = withdrawalFee;

}

public void deposit(double amount)
{
    double newBalance = balance + amount;
    balance = newBalance;
}
public void withdraw(double amount)
{
    double newBalance = balance - amount;
    balance = newBalance;
}

public double getAnnualInterestRate(){
    return (annualInterestRate);
}
public String getAccountNumber()
{
    return accountNumber ;
}
public void getannualInterestRate(double rate) {
    if (rate >= 0.00) {
        annualInterestRate = rate ;}
}
public double getBalance()
{
    return balance;
}
public void setAnnualInterestRate(double annualInterestRate) {
    this.annualInterestRate = annualInterestRate;


}
public double getWithdrawalFee() {
    return withdrawalFee;
}
public void setWithdrawalFee(double withdrawalFee)    {
    this.withdrawalFee = withdrawalFee;
}
public boolean isOverDrawn(){
    if (0 > balance){
        return true;
    } else {
        return false;
    }
}

public String toString(){
return (" BankAccount" +" "accountNumber" +":"+balance);
}
}


考试:

import static org.junit.Assert.assertEquals;

public class BankAccountTest extends junit.framework.TestCase
{

final double INITIAL_BALANCE = 100;
final double WITHDRAWAL_FEE = 2.0;
final double ANNUAL_INTEREST_RATE = 5.0;

BankAccount chequing1;
BankAccount chequing2;
BankAccount chequing3;

protected void setUp()
{

    System.out.println("setup");
    chequing1 = new BankAccount("chequing1");
    chequing2 = new BankAccount("chequing2", INITIAL_BALANCE);
    chequing3 = new BankAccount("chequing3", INITIAL_BALANCE, WITHDRAWAL_FEE, ANNUAL_INTEREST_RATE);
    assertEquals(3,3);
}

public void testAccessors()
{
    assertEquals("chequing2",  chequing2.getAccountNumber());
    assertEquals(INITIAL_BALANCE,  chequing2.getBalance(), 0);
    assertEquals(ANNUAL_INTEREST_RATE,  chequing3.getAnnualInterestRate(), 0);
    assertEquals(WITHDRAWAL_FEE,  chequing3.getWithdrawalFee(), 0);
}

public void testMutators()
{
    //test for setters
    chequing1.setWithdrawalFee(3.0);
    chequing1.setAnnualInterestRate(4.0);
    assertEquals(3.0,  chequing1.getWithdrawalFee(), 0);
    assertEquals(4.0,  chequing1.getAnnualInterestRate(), 0);
    //spac
}

public void testDeposits()
{
    //test various deposits and withdrawals
    chequing1.setWithdrawalFee(3.0);

    chequing1.deposit(500);
    assertEquals(500.0,  chequing1.getBalance(), 0);

    chequing1.withdraw(200);
    assertEquals(297.0,  chequing1.getBalance(), 0);
    assertEquals(false,  chequing1.isOverDrawn());

    chequing1.withdraw(300);
    assertEquals(-6.0,  chequing1.getBalance(), 0);
    assertEquals(true,  chequing1.isOverDrawn());

    chequing2.deposit(0.42);
    assertEquals(100.42,  chequing2.getBalance(), 0.00);
    chequing2.deposit(0.001);
    assertEquals(100.421,  chequing2.getBalance(), 0.001);
}

public void testToString() {

    assertEquals("BankAccount chequing1: $0.00",  chequing1.toString());
    assertEquals("BankAccount chequing2: $100.00",  chequing2.toString());

    chequing2.deposit(0.42);
    assertEquals("BankAccount chequing2: $100.42",  chequing2.toString());

    chequing2.deposit(0.001);
    assertEquals("BankAccount chequing2: $100.42",  chequing2.toString());

    BankAccount chequing4 = new BankAccount("chequing4", -100);
    assertEquals("BankAccount chequing4: ($100.00)",  chequing4.toString());
    assertEquals("BankAccount chequing4: ($100.00)",  chequing4.toString());
}


}

最佳答案

构造函数中的分配是向后的:

public BankAccount(String account_Number) {
  this.accountNumber= account_Number ;
}

public BankAccount(String account_Number,double iNITIAL_BALANCE)
{

  this.accountNumber = account_Number ;
  this.balance = iNITIAL_BALANCE;
}

public BankAccount(String account_Number, double iNITIAL_BALANCE, double
    wITHDRAWAL_FEE,
    double aNNUAL_INTEREST_RATE) {
  this.accountNumber= account_Number ;
  this.balance= iNITIAL_BALANCE ;
  this.annualInterestRate= aNNUAL_INTEREST_RATE ;
  this.withdrawalFee= wITHDRAWAL_FEE ;
}

关于java - BankAccount不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50067695/

10-12 04:48