设置:
<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”。
因此,
样本类别:
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 ..。将来的某个时候。
然而,我是否错过了一个更好的解决方案?还有别的办法来解决这个问题吗?
最良好的祝愿:
发布于 2022-11-17 00:13:01
对于records的具体情况,参数名称也是字段名,因此
@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");https://stackoverflow.com/questions/74461422
复制相似问题