如何使用ArchUnit检查源代码中是否使用了反射?

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

我想使用 ArchUnit 编写一个 JUnit 测试用例来检查开发人员编写的源代码中是否使用了反射,如果是,则测试用例失败。我如何使用 ArchUnit 来实现这一目标?我在 Spring Boot 中使用基于 Kotlin 的应用程序。

我检查了 ArchUnit 的文档,不幸的是似乎找不到一种方法来做到这一点。我怀疑这是否可能。

java spring-boot kotlin junit archunit
1个回答
0
投票

也许检查一下是否有

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() {
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.