我的代码给出了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/