无参数的java测试方法

t2a7ltrp  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(346)

我对java测试还很陌生,想知道是否有一种方法可以测试这样的类?我特别想知道的是,如何测试像“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;
    }
}
7qhs6swi

7qhs6swi1#

要编写测试,可以执行以下步骤:
准备上下文:示例化 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()` 我也是。
这是几种测试方法之一:)

相关问题