Сделать исключение вызова конкретных методов (в коде) и заменить их значением по-умолчанию. Используется для исключения вызова методов при запуске тестов на разных окружениях.
<dependency>
<groupId>ru.romanow.skip.method</groupId>
<artifactId>skip-method</artifactId>
<version>${skip-method.version}</version>
</dependency>
testImplementation "ru.romanow.skip.method:skip-method:$skipMethodVersion"
Настроить поддержку AspectJ в gradle:
configurations {
aspectjWeaverAgent
}
dependencies {
aspectjWeaverAgent "org.aspectj:aspectjweaver:$aspectjVersion"
testImplementation "org.aspectj:aspectjrt:$aspectjVersion"
}
test {
useJUnitPlatform()
systemProperty "skipOn", findProperty("skipOn")
doFirst {
jvmArgs "--add-opens",
"java.base/java.lang=ALL-UNNAMED",
"-javaagent:${configurations.aspectjWeaverAgent.singleFile}"
}
}
В META-INF/aop.xml создать описание используемых аспектов.
@SkipMethod(skipOn = [DEV, PROD], valueProvider = IntegerProvider::class)
fun skipOnAll(): Int {
return 100
}
class IntegerProvider : ObjectProvider<Int> {
override fun generate(): Int {
return 10
}
}
$ ./gradlew clean build -PskipOn=DEV