测试一,二,.. ONE_HUNDRED与_1,_2,_100的幻数常量名称约定[关闭]

问题描述 投票:1回答:1

所以我正在做一些代码重构/声纳修复,并且有些测试包含魔术数字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类,我们将在其中保存使用的数字...

java testing coding-style naming-conventions magic-numbers
1个回答
3
投票

我认为整个方法都不正确。

© www.soinside.com 2019 - 2024. All rights reserved.