【问题标题】:Test if class extends specific class ArchUnit测试类是否扩展了特定类 ArchUnit
【发布时间】:2022-12-03 02:53:46
【问题描述】:

有没有办法在 ArchUnit 测试中测试类扩展特定类?

我有3个班级:

  1. 扩展A类的B类
  2. 扩展 B 类的 C 类

    我需要验证 ClassC 是否扩展了 ClassA。下面的测试

    ArchRuleDefinition.classes()
        .that()
            .haveSimpleName("ClassC")
        .should()
            .beAssignableTo("ClassA")
        .check(classes);
    

    因违规错误而失败

    Architecture Violation [Priority: MEDIUM] - Rule 'classes that have simple name 'ClassC' should be assignable to ClassA' was violated (1 times):
    Class <ClassC> is not assignable to ClassA in ...
    

【问题讨论】:

    标签: java archunit


    【解决方案1】:

    如果 ClassA 位于默认包中,则只能使用 beAssignableTo("ClassA")

    一般来说,你have to use fully qualified class name,即ClassA.class.getName()

    如果 ClassA 在类路径中可用,我会使用 beAssignableTo(ClassA.class)

    【讨论】:

      猜你喜欢
      • 2013-02-17
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2014-09-16
      • 2011-03-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多