Skip to content

Repository files navigation

CIpre-commitReleaseCodecovLicense

Пропуск вызова метода в тестах

Задача

Сделать исключение вызова конкретных методов (в коде) и заменить их значением по-умолчанию. Используется для исключения вызова методов при запуске тестов на разных окружениях.

Подключение

Maven

<dependency>
<groupId>ru.romanow-alex</groupId>
<artifactId>skip-method</artifactId>
<version>${skip-method.version}</version>
</dependency>

Gradle

testImplementation "ru.romanow-alex: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)
funskipOnAll(): Int {
return100
}
classIntegerProvider : ObjectProvider<Int> {
overridefungenerate(): Int {
return10
}
}

Запуск

$ ./gradlew clean build -PskipOn=DEV

About

Skip method execution and return default method

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages