我们应该对谓词方法进行单元测试吗

时间:2018-07-18 07:52:46

标签: unit-testing junit

我正在进行单元测试,并且试图将线路覆盖率提高到班级的90%。该类包含许多谓词方法,这些谓词方法仅比较其某些字段,并基于此返回true或false。 我的问题是,是否应该为那些谓词方法编写单元测试。 目前,我已经编写了单元测试,它只是初始化对象并设置其字段,然后断言谓词的返回值是否正确。

例如:

public boolean isScheduled() {
   return getShippingDate() != null;
}

我应该如何对其进行单元测试,单元测试方法名称应该是什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

我建议您,即使其中包含一小部分逻辑,也要为代码添加测试。

我对命名的偏好是:

  

方法名称+ ExpectedReturnValue +行为

例如,在您的情况下,我将其命名为

  

isScheduledShouldReturnTrueWhenShippingDateIsNotNull-正例   isScheduledShouldReturnTrueWhenShippingDateIsNotNull-否定情况

在存储库中遵循相同的命名约定(不一定是我建议的命名约定)。您也可以在一个测试中合并这两种情况。

请记住,测试是文档,所以可以使用详细的方法名称。

代码:

@Test
public void isScheduledShouldReturnTrueWhenGetShippingDateIsNotNull() {
    ClassA classA = new ClassA();
    classA.setShippingDate("date");

    boolean isScheduled = classA.isScheduled();

    assertTrue(isScheduled);
}   

PS:理想情况下,动机永远不应该像扩大报道范围那样获得一些好的报告。重要的是测试的质量。