gpt4 book ai didi

java - Eclipse 中的 JUnit 测试

转载 作者:行者123 更新时间:2023-12-02 12:04:11 24 4
gpt4 key购买 nike

这是 BankAccount 类的一部分,我还需要在 JUnit 测试用例中测试该类。

以下内容来 self 的 BankAccount 类,涉及 JUnit 测试用例:

int accountType;

public int getAccountType() {
return accountType;
}

public void setAccountType(int accountType) {
this.accountType = accountType;
}

//getting variable to determine interest rate according to account type
public double getInterestRate(double r) {
double a;
if(getAccountType()==1.0) {
a = 0.5;
}
else if(getAccountType()==2.0) {
a = 4.5;
}
else if(getAccountType()==3.0) {
a = 1.0;
}
else if(getAccountType()==4.0) {
a = 15;
}
else {
a = 0;
}
return a;
}

String type() {
if(getAccountType()==1) {
return "Savings";
}
else if(getAccountType()==2) {
return "Award Savers";
}
else if(getAccountType()==3) {
return "Checking";
}
else if(getAccountType()==4) {
return "Credit Card";
}
else {
return "None";
}
}

//getting the account type from the user
System.out.println("Enter a number from 1 to 4 according to your account type: ");
System.out.println("1 --> Savings");
System.out.println("2 --> Award Savers");
System.out.println("3 --> Checking");
System.out.println("4 --> Credit Card");
bank.setAccountType(scan.nextInt());

//printing the account type back to the user
System.out.println("Account Type: " + bank.type());

现在这是我实际的 J-Unit 测试用例。我对此进行了相当多的修改,到目前为止,使测试用例成功的唯一方法是将预期结果(对于帐户类型 1)设置为 0,而实际上它应该是 0.5。

package test;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

import core.BankAccount;

class test_getInterestRate {

@Test
void test() {
BankAccount test = new BankAccount();

double rate = test.getInterestRate(1.0); // this SHOULD make rate = 0.5

assertEquals(0.5, rate); //this test fails because rate = 0, not 0.5
}

}

有什么建议吗?这是我第一次使用 JUnit 框架。我读/观看的所有教程都使用非常简单的方法,所以我陷入困境。

最佳答案

您没有在测试中设置帐户类型。根据您在问题和测试代码中所说的内容,我认为您希望您的测试如下所示:

@Test
void test() {
BankAccount test = new BankAccount();
test.setAccountType(1); // this is what should make the rate = 0.5

double rate = test.getInterestRate(1.0);

assertEquals(0.5, rate); //this test fails because rate = 0, not 0.5
}

您在获取利率时采用的双倍 r 还没有起到任何作用。您使用的 if 语句检查从 getAccountType() 返回的 double 值。它们应该是 int 值,就像您在 type() 方法中使用它们的方式一样。例如1、2、3 或 4。

if(getAccountType()==1) {
a = 0.5;
}
else if(getAccountType()==2) {
a = 4.5;
}
else if(getAccountType()==3) {
a = 1.0;
}
else if(getAccountType()==4) {
a = 15;
}
else {
a = 0;
}

关于java - Eclipse 中的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47027578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com