RandomStringUtils генерирует аналогичные значения за один прогон.Как генерировать разные? - PullRequest
0 голосов
/ 12 октября 2018

У меня проблема.В одном тесте я генерирую случайную числовую переменную (но имеет тип String) в каждом тесте.Я использую библиотеку RandomStringUtils для этого.

Но он генерирует только одно значение этой переменной для всех тестов.Как сгенерировать новое значение в каждом тесте?

Пример:

public void test() {
    JsonResponse response = dosomething(baseUrl(), generateId());
    assert something
}

и метод generateId () в другом классе

public static String generateId(){
        return RandomStringUtils.randomNumeric(6);
    }

theвесь набор тестов выглядит так (и я получил все значения generateId ()):

public class Tests {
public void test1() {
        JsonResponse response = dosomething(baseUrl(), generateId());
        assert something
    }

public void test2() {
        JsonResponse response = dosomething(baseUrl(), generateId());
        assert something
    }
}
public void test3() {
        JsonResponse response = dosomething(baseUrl(), generateId());
        assert something
    }

версия apache 3.7 (во внешних библиотеках)

Export-Package: org.apache.commons.lang3;version="3.7",org.apache.comm
 ons.lang3.arch;version="3.7",org.apache.commons.lang3.builder;version
 ="3.7",org.apache.commons.lang3.concurrent;version="3.7",org.apache.c
 ommons.lang3.event;version="3.7",org.apache.commons.lang3.exception;v
 ersion="3.7",org.apache.commons.lang3.math;version="3.7",org.apache.c
 ommons.lang3.mutable;version="3.7",org.apache.commons.lang3.reflect;v
 ersion="3.7",org.apache.commons.lang3.text;version="3.7",org.apache.c
 ommons.lang3.text.translate;version="3.7",org.apache.commons.lang3.ti
 me;version="3.7",org.apache.commons.lang3.tuple;version="3.7"

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

RandomStringUtils устарело

с версии 3,6, вместо этого используйте обычный текст RandomStringGenerator

Используйте следующий пример кода замены:

// Generates a 20 code point string, using only the letters a-z
RandomStringGenerator generator = new RandomStringGenerator.Builder()
 .withinRange('a', 'z').build();
String randomLetters = generator.generate(20);
0 голосов
/ 12 октября 2018

Я попробовал ваш код и получил разные номера в каждом тесте.

Вы можете просмотреть вызовы RandomStringUtils.randomNumeric (final int count) и найти следующий код:

random(count, start, end, letters, numbers, null, RANDOM);

Возможно, у вас есть проблемы со Random, что очень странно.В любом случае, вы можете попытаться вызвать его с помощью своего собственного объекта Random.Не забудьте создать случайные объекты с разными seed номерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...