没有参数的测试方法
Test method with no parameters
我对 Java 中的测试很陌生,想知道是否有办法像这样测试 class?
我特别想知道的是如何测试诸如“calculateCustoms”之类的方法,因为它不接受任何输入参数..
public class CustomsCalculator {
private double litresWine, litresBeer;
public void setLitresWine(double litresWine) {
checkDoubleNotNegative(litresWine);
this.litresWine = litresWine;
}
public void setLitresBeer(double litresBeer) {
checkDoubleNotNegative(litresBeer);
this.litresWineOverQuota = litresWineOverQuota;
}
public double getLitresWine() {
return litresWine;
}
public double getLitresBeer() {
return litresBeer;
}
public void checkDoubleNotNegative(double number) {
if (number < 0) {
throw new IllegalArgumentException("Negative value not allowed.");
}
}
public double calculateCustoms() {
double wineFee = 13.0*getLitresWineOverQuota();
double beerFee = 11.0*getLitresBeerOverQuota();
double totalFee = wineFee + beerFee;
return totalFee;
}
}
要编写测试,您可以按照以下步骤操作:
- 准备上下文:实例化
CustomsCalculator
,使用非负值调用 setLitresWine()
和 setLitresBeer()
。
- 调用测试方法:
calculateCustoms()
.
- 验证结果
public class CustomsCalculatorShould {
@Test
void calculate_the_customs_of_1_wine_and_1_beer() {
// Prepare the context
CustomsCalculator customsCalculator = new CustomsCalculator();
customsCalculator.setLitresWine(1);
customsCalculator.setLitresBeer(1);
// Call the tested method
double totalFee = customsCalculator.calculateCustoms()
// Validate the result
assertEquals(expectedResult, totalFee);
}
}
expectedResult
必须替换为正确的值。您的代码没有显示 getLitresWineOverQuota()
和 getLitresBeerOverQuota()
实现,所以我没有计算出正确的值。
你也应该测试 setLitresWine()
和 setLitresBeer()
。
这是几种测试方法之一:)
我对 Java 中的测试很陌生,想知道是否有办法像这样测试 class? 我特别想知道的是如何测试诸如“calculateCustoms”之类的方法,因为它不接受任何输入参数..
public class CustomsCalculator {
private double litresWine, litresBeer;
public void setLitresWine(double litresWine) {
checkDoubleNotNegative(litresWine);
this.litresWine = litresWine;
}
public void setLitresBeer(double litresBeer) {
checkDoubleNotNegative(litresBeer);
this.litresWineOverQuota = litresWineOverQuota;
}
public double getLitresWine() {
return litresWine;
}
public double getLitresBeer() {
return litresBeer;
}
public void checkDoubleNotNegative(double number) {
if (number < 0) {
throw new IllegalArgumentException("Negative value not allowed.");
}
}
public double calculateCustoms() {
double wineFee = 13.0*getLitresWineOverQuota();
double beerFee = 11.0*getLitresBeerOverQuota();
double totalFee = wineFee + beerFee;
return totalFee;
}
}
要编写测试,您可以按照以下步骤操作:
- 准备上下文:实例化
CustomsCalculator
,使用非负值调用setLitresWine()
和setLitresBeer()
。 - 调用测试方法:
calculateCustoms()
. - 验证结果
public class CustomsCalculatorShould {
@Test
void calculate_the_customs_of_1_wine_and_1_beer() {
// Prepare the context
CustomsCalculator customsCalculator = new CustomsCalculator();
customsCalculator.setLitresWine(1);
customsCalculator.setLitresBeer(1);
// Call the tested method
double totalFee = customsCalculator.calculateCustoms()
// Validate the result
assertEquals(expectedResult, totalFee);
}
}
expectedResult
必须替换为正确的值。您的代码没有显示 getLitresWineOverQuota()
和 getLitresBeerOverQuota()
实现,所以我没有计算出正确的值。
你也应该测试 setLitresWine()
和 setLitresBeer()
。
这是几种测试方法之一:)