java - 银行账户不工作
问题描述
我的代码给出了 junitframeworkComparisonFailure: expected 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 ;
}
推荐阅读
- php - LARAVEL 获取 2 个相同的列
- tensorflow-federated - 如何为单个联邦学习客户实施班级加权?
- c# - 从按钮单击方法调用私有 void 函数
- javascript - React:通过渲染道具访问组件之间传递的引用
- java - 如何在 java 中为 Amazon lex 使用 AWS lambda
- c# - 使用转换后的 appsettings 在构建管道中运行集成测试
- javascript - 如何保持两条贝塞尔曲线之间的垂直宽度相等?
- postgresql - Cloud PostgreSQL 清理大型对象vacuumlo
- c# - WPF 使用 ElementName 解决可见性问题
- docker - Nginx 找不到具体位置