Установить значение переменной в тестируемом методе в Junit - PullRequest
0 голосов
/ 17 января 2020

Как мы можем установить значение некоторой целочисленной переменной в тестируемом методе в Junit? Это всего лишь придуманный код, который воспроизводит мою проблему. Вот код:

void someMethod(long l) {
int i = 0;
while (i < l) {
    if (i == Integer.MAX_VALUE) {
        throw new RuntimeException;
    }
    i++;
} 

Мне нужно установить для i значение 2 147 483 647 в тесте, чтобы проверить, что если условие if истинно, оно правильно выдает исключение.

Ответы [ 2 ]

0 голосов
/ 17 января 2020

Прежде всего, мой вопрос не описывал проблему, с которой я столкнулся. Мне удалось создать переменную экземпляра

int maxVal = Integer.MAX_VALUE

Итак, метод выглядел следующим образом:

void someMethod(long l) {
    int i = 0;
    while (i < l) {
        if (i == maxVal) {
            throw new RuntimeException;
        }
        i++;
    }...

, а затем установить переменную экземпляра на другое значение в тестовом примере, 0 в случае с кодом выше, и он выдал исключение, как я хотел.

Спасибо Turing85 за эту подсказку.

0 голосов
/ 17 января 2020

Вы можете передать аргумент long l как Integer.MAX_VALUE + 1, это позволит i быть равным Integer.MAX_VALUE, и вы получите исключение.

...