我有问题。 在一次测试中,我在每次测试中都会生成随机数字变量(但具有String类型)。 我为此使用了RandomStringUtils lib。
但是对于所有测试,它仅生成该变量的一个值。如何在每次测试中产生新值?
示例:
public void test() {
JsonResponse response = dosomething(baseUrl(), generateId());
assert something
}
和其他类中的generateId()方法
public static String generateId(){
return RandomStringUtils.randomNumeric(6);
}
整个测试套件看起来像(我得到的所有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"
答案 0 :(得分:0)
我已经尝试过您的代码,并且每次测试中都有不同的数字。
您可以通过RandomStringUtils.randomNumeric(final int count)调用查看并发现有以下代码:
random(count, start, end, letters, numbers, null, RANDOM);
可能,您在Random中遇到了一些非常奇怪的问题。无论如何,您可以尝试使用自己的Random对象调用它。不要忘记用不同的种子数字创建随机对象。
答案 1 :(得分:0)
https://godbolt.org/z/LFuese已弃用
从3.6版本开始,改用commons-text 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);