「参照系の操作はRepositoryではなくQueryServiceに依存する」ことをテストしてみる。
テストコード
@AnalyzeClasses(packages = "com.example")
public class CommandQueryTest {
@ArchTest
static ArchRule get_endpoint_depend_on_query_service =
classes().that().resideInAPackage("com.example.application")
.should().onlyAccessClassesThat().resideInAPackage("com.example.queryservice");
特定の参照結果を得たいだけであればQueryServiceのクラスに依存していることをテストすることで判定できる。
他のクラスにも依存せざるを得ない場合は、個別に羅列するか、Repositoryクラスに依存しないことをテストすれば良い。