Java 确保注释存在的ArchUnit
版本为0.12的给定库: 是否可以测试场景“用Java 确保注释存在的ArchUnit,java,unit-testing,archunit,Java,Unit Testing,Archunit,版本为0.12的给定库: 是否可以测试场景“用a注释的方法也应该用B注释,或者在用B注释的类型中声明” 例子: A.java @Target({ElementType.METHOD}) @保留(RetentionPolicy.RUNTIME) 公共@接口A{ } B.java @Target({ElementType.METHOD,ElementType.TYPE}) @保留(RetentionPolicy.RUNTIME) 公共@接口B{ } TestCases.java 公共类测试用例{
a
注释的方法也应该用B
注释,或者在用B
注释的类型中声明”
例子:
A.java
@Target({ElementType.METHOD})
@保留(RetentionPolicy.RUNTIME)
公共@接口A{
}
B.java
@Target({ElementType.METHOD,ElementType.TYPE})
@保留(RetentionPolicy.RUNTIME)
公共@接口B{
}
TestCases.java
公共类测试用例{
静态类应该失败{
@A
公屋{
}
}
静态类应为类{
@A
@B
公屋{
}
}
@B
静态类也应该使用{
@A
公屋{
}
}
}
我试过什么?
我认为,ArchConditions.bedecledin类可以完成这项工作,所以我准备了以下规则:
methodsshouldconnection rule=methods()
.那()
.区域标注为(A类)
.should()
.未注明(B级)
.或应(包括在未注明(B类))的类别中)// 结果是,我不必要地尝试将参数传递给或should
方法。为实现我的目标,应使用无参数方法扩展规则:
methods()
.那()
.区域标注为(A类)
.should()
.未注明(B级)
.orShould()
.bedecledinstath()类
.注明的区域(B类);
结果是,我没有必要尝试将参数传递给或should
方法。为实现我的目标,应使用无参数方法扩展规则:
methods()
.那()
.区域标注为(A类)
.should()
.未注明(B级)
.orShould()
.bedecledinstath()类
.注明的区域(B类);