首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArchUnit测试敏感变量命名

ArchUnit测试敏感变量命名
EN

Stack Overflow用户
提问于 2022-11-16 13:36:09
回答 1查看 45关注 0票数 3

设置:

代码语言:javascript
复制
        <java.version>17</java.version>
        <spring-boot.version>2.7.0</spring-boot.version>

        <junit-jupiter-engine.version>5.8.2</junit-jupiter-engine.version>
        <mockito-junit-jupiter.version>4.6.1</mockito-junit-jupiter.version>

        <archunit.version>1.0.0-rc1</archunit.version>

在我最近的Java17-Project测试中,使用了

到目前为止,它运行得很好,我希望通过黑名单来扩展特定变量名的测试。

:问题不是“有意义吗”,而是“如何去做”。

让我进入心情的示例:

( a) 将列入黑名单,将Uuid.class命名为“uuid”。

因此,

  • 开发人员必须使用允许的名称'id‘,或者想出更具体的名称来说明他们的目的。

样本类别:

代码语言:javascript
复制
import java.io.Serializable;
import java.util.UUID;

public record myClassRecordClass(
    UUID id,
    UUID uuid,               <-- forbidden
    UUID pupilId,
    UUID teacherId,
    String className
) implements Serializable {}

( b)在业务用例中使用的术语( Blacklisting ),因为它必须重新命名。

禁止

  • 回到“旧习惯/命名惯例”。

2022年11月:据我所知,类、字段和成员可以通过ArchUnit检查,但不是变量名称。

如果下面的公关可能涉及到这个问题. https://github.com/TNG/ArchUnit/issues/768 ..。将来的某个时候。

然而,我是否错过了一个更好的解决方案?还有别的办法来解决这个问题吗?

最良好的祝愿:

EN

回答 1

Stack Overflow用户

发布于 2022-11-17 00:13:01

对于records的具体情况,参数名称也是字段名,因此

代码语言:javascript
复制
@ArchTest
ArchRule no_field_named_uuid = noFields()
    .that().haveRawType(UUID.class)
    .should().haveName("uuid")
    .because("developers have to use the allowed name 'id' or " +
            "think of a more specific name regarding their purpose");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74461422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档