我有一个方法名称列表,我想用以下形式编写一个ArchUnit测试:
ArchRule rule = methods().that().haveName("methodName").should(new ArchCondition<JavaMethod>. ("test") {
@Override
public void check(JavaMethod javaMethod, ConditionEvents conditionEvents) {
...
}
});
rule.check(classesToTest);
}
字符串
}
我尝试组合使用@ParameterizedTest和@ArchUnit,但这不起作用。我还尝试在for循环中创建ArchRule,但是当第一次发生冲突时,这会失败,并且不会检查我稍后尝试测试的规则。
2条答案
按热度按时间q3qa4bjr1#
@ArchTest
s由ArchUnit自己的测试运行器评估,该运行器不支持JUnit的@ParameterizedTest
s。也许您可以使用参数化方法创建
ArchRule
,该方法允许您创建字符串
只需要一点开销
或者,如果您自己负责类文件导入,也可以将ArchUnit测试编写为纯JUnit测试,参见。https://www.archunit.org/getting-started的数据。
lskq00tm2#
在此期间,我自己找到了解决办法。在以下情况下,您可以创建ArchUnit规则列表:
字符串
然后,您可以将它们组合在一起并测试:
型