【问题标题】:Should we unit test predicate methods我们是否应该对谓词方法进行单元测试
【发布时间】:2018-07-18 07:52:46
【问题描述】:

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

例如:

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

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

谢谢。

【问题讨论】:

    标签: unit-testing junit


    【解决方案1】:

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

    我对命名的偏好如下:

    方法名+ExpectedReturnValue+行为

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

    isScheduledShouldReturnTrueWhenShippingDateIsNotNull - 正例 isScheduledShouldReturnTrueWhenShippingDateIsNotNull - 否定情况

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

    请记住,测试是文档,因此方法名称可以冗长。

    代码:

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

    PS:理想情况下,动机不应该是增加报道以获得一些好的报告。重要的是测试的质量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多