我想使用 ArchUnit 编写一个 JUnit 测试用例来检查开发人员编写的源代码中是否使用了反射,如果是,则测试用例失败。我如何使用 ArchUnit 来实现这一目标?我在 Spring Boot 中使用基于 Kotlin 的应用程序。
我检查了 ArchUnit 的文档,不幸的是似乎找不到一种方法来做到这一点。我怀疑这是否可能。
也许检查一下是否有
java.lang.reflect
的用法
package de.solitics.demo;
import com.tngtech.archunit.junit.AnalyzeClasses;
import com.tngtech.archunit.junit.ArchTest;
import com.tngtech.archunit.lang.ArchRule;
import com.tngtech.archunit.lang.syntax.ArchRuleDefinition;
@AnalyzeClasses
public class ReflectionTests {
@ArchTest
public static final ArchRule myRule = ArchRuleDefinition.theClass(ReflectionTests.class).should()
.onlyDependOnClassesThat().resideOutsideOfPackage("java.lang.reflect");
public static void aMethodUsesReflection() throws Exception {
ReflectionTests.class.getMethod("aMethod").invoke(new ReflectionTests());
}
public void aMethod() {
}
}