在任何情况下都可以将此条件评估为“真实”吗?

时间:2018-05-11 08:19:02

标签: java unit-testing refactoring code-coverage

我必须重构一些遗留代码,我已经开始做一些测试了。这是测试中的方法:

public static synchronized String getWeekFromDate(Date date) {
    String strYyear = new SimpleDateFormat("yyyy").format(date);
    String strMonth = new SimpleDateFormat("MM").format(date);
    String strWeek = new SimpleDateFormat("ww").format(date);
    int month = Integer.parseInt(strMonth);
    if (month > 1 && "01".equals(strWeek)) {
        int year = Integer.parseInt(strYyear);
        return (year + 1) + "01";
    }
    return new SimpleDateFormat("yyyyww").format(date);
}

我写了五个测试用例,一切都是绿色的。现在,我想重构它。条件if (month > 1 && "01".equals(strWeek))对我没有意义。它可以理解为:

  

给定一个日期,当月份不是一月而一周就是这样的时候   那年的第一个

我是对的吗?是否有意义?我很确定我可以删除那段代码而没有后果。

我的测试用例是(全绿色):

  • 鉴于2018-01-03,它应返回“201801”
  • 鉴于2018-02-01,它应该返回“201805”
  • 鉴于2018-08-15,它应该返回“201833”

0 个答案:

没有答案