所以我正在做一些代码重构/声纳修复,并且有些测试包含魔术数字5、123、567或其他,我想创建一个NumberConstant类,我们保存测试中使用的数字,一切都很好我们有这样的事情
public static final int ZERO = 0;
public static final int ONE = 1;
public static final int TWO = 2;
public static final int THREE = 3;
public static final int FOUR = 4;
public static final int FIVE = 5;
问题是在进行重构时,SonarQube的代码“确定”,但是似乎有些异常,代码以某种方式变得“混乱”,]]
我的意思是只比较这两行
之前
private LocalDateTime endtDateOfFiscalYear2018 = LocalDate.of(2018, Month.DECEMBER, 31).atTime(LocalTime.MAX);
之后
private LocalDateTime endtDateOfFiscalYear2018 = LocalDate.of(TWO_THOUSAND_EIGHTEEN, Month.DECEMBER, THIRTY_ONE).atTime(LocalTime.MAX);
我认为一个不错的折衷办法是:
private LocalDateTime endtDateOfFiscalYear2018 = LocalDate.of(_2018, Month.DECEMBER, _31).atTime(LocalTime.MAX);
并且让我的NumberConstant类像这样
public static final int _0 = 0; public static final int _1 = 1; public static final int _2 = 2; public static final int _3 = 3; public static final int _4 = 4; public static final int _5 = 5;
这是一个很好的折衷方案,还是整个方法都不正确?您如何保持测试的清洁和易懂?
所以我正在做一些代码重构/声纳修复,并且有些测试包含魔术数字5、123、567或其他,我想创建一个NumberConstant类,我们将在其中保存使用的数字...
我认为整个方法都不正确。