Только MockK System.getenv - PullRequest
       73

Только MockK System.getenv

0 голосов
/ 20 октября 2019

Язык: Kotlin

Цель состоит в том, чтобы протестировать метод, который вызывает System.getenv внутренне, я хотел бы, чтобы этот метод производил предопределенный результат

Trial:

mockkStatic(System::class)

    every {
        System.getenv(any())
    } answers {
        when {
            firstArg() as String == "clientId" -> "aaa"
            firstArg() as String == "clientSecret" -> "bbb"
            else -> throw IllegalArgumentException("something went wrong")
        }
    }

    mockkStatic(System::class)

Похоже, это вызвало у JVM некоторые сомнения:

Exception in thread "main" java.lang.StackOverflowError
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "main"

Как можно протестировать такой метод? (как вы можете себе представить, во многих кодах используются переменные окружения)

...