java - 如何测试以下Java方法

标签 java unit-testing

也只是想获得对以下代码的第二意见(如果我做得正确的话)。我编写了一个方法,使用 postCode 变量为变量 labourCharge 创建乘数,以增加昂贵区域的乘数。

首先,我需要编写一个公共(public)方法costMultiplier(),它不接受任何参数并返回一个 double 值。对于以“WC1A”或“EC1A”开头的邮政编码,该方法应返回 1.2,否则返回 1.0。

public double costMultiplier() {
    if (postCode.startsWith("WC1A") || postCode.startsWith("EC1A")) {
        return 1.2; 
    }
    else 
        return 1.0;

我基本上正在创建一个计算地毯成本和配件的程序。主类是carpetestimator类,变量是postcode和labourCharge。我正在寻找一种简单的方法来测试例如地毯估计器ce =新地毯估计器(4.0);之类的东西ce.getlabourCharge();...所以基本上如果我编码正确,一旦我执行上面的语句,就会显示答案 0。这就是我想测试上面代码的方式。 }

最佳答案

您可以使用此方法来测试您的功能并对其进行调整。

public class Sample {
    public double costMultiplier(String postCode) {
        if (postCode.startsWith("WC1A") || postCode.startsWith("EC1A")) {
            return 1.2;
        }
        else
            return 1.0;
    }
}

这是使用 JUnit 的测试类。

import org.junit.Assert;
import org.junit.Test;

public class SampleTest {
    @Test
    public void test1() {
        Sample s = new Sample();
        Assert.assertEquals(1.2, s.costMultiplier("WC1A"),0.00001);
    }

    @Test
    public void test2() {
        Sample s = new Sample();
        Assert.assertEquals(1.2, s.costMultiplier("EC1A"),0.00001);
    }

    @Test
    public void test3() {
        Sample s = new Sample();
        Assert.assertEquals(1.0, s.costMultiplier("ABC"),0.00001);
    }
}

添加正面和负面测试是个好主意。

引用 JUnit 断言 API:http://junit.sourceforge.net/javadoc/index.html?org/junit/Assert.html

关于java - 如何测试以下Java方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59220064/

相关文章:

java - 为什么自动装箱在 eclipse 中有效而在 javac 中无效?

java - 使用 Jackson 在 Java 中使用不同的 POJO 反序列化 JSON 数组

java - 在指定文件夹中查找扩展名为.java的文件

angular - TypeError : this. _platformStrategy.getBaseHref 不是函数

javascript - Jest 模拟 setTimeout

java - com.microsoft.sqlserver.jdbc.SQLServerException : Login failed for user 'sa'

java - 如何在反射的私有(private)方法上模拟自动连线的私有(private)响应

java - 如何测试一个java软件?

django - 如何从所有应用程序加载 Django 装置?

java - 在非构造函数方法中使用 Guice 注入(inject)依赖