我该如何为以下代码创建单元测试

时间:2018-10-23 08:59:23

标签: java eclipse

public String getBloodPressureLevel() {

    if (this.systolic > MedicalRecord.AT_RISK_SYSTOLIC_UPPER_BOUND
            || this.diastolic > MedicalRecord.AT_RISK_DIASTOLIC_UPPER_BOUND) {
        return "High";
    } else if ((this.systolic >= MedicalRecord.AT_RISK_SYSTOLIC_LOWER_BOUND
            && this.systolic <= MedicalRecord.AT_RISK_SYSTOLIC_UPPER_BOUND)
            || (this.diastolic >= MedicalRecord.AT_RISK_DIASTOLIC_LOWER_BOUND
                    && this.diastolic <= MedicalRecord.AT_RISK_DIASTOLIC_UPPER_BOUND)) {
        return "At risk";
    } else {
        return "Normal";
    }
}

Test cases i'm supposed to have

我只是不确定该怎么做

1 个答案:

答案 0 :(得分:3)

您首先阅读有关JUnit工作原理的教程,例如here

然后您考虑生产代码中不同的 corners ,然后执行类似的操作

@Test
public void testForHigh() {
   YourClass underTest = new YourClass(/*systolic*/ 200, /*diastolic*/ 100);
   assertThat(underTest.getBloodPressureLevel(), is("High"));
}

(其中is()是一个hamcrest匹配器,允许编写更多人类可读的测试条件,并且假设您有一些使用收缩压和舒张压数据点实例化的类)

这里的重点是:您必须研究应该使用的工具,然后针对每种可能的情况实施至少一个一个方法,代表您的11种不同的测试输入。

(不,我不会给您更多代码。以上内容是为了启发您自己完成这项工作。)