junit EasyRandom集合大小错误?

jfgube3f  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(127)

我使用的是简单随机(4.1.0,但甚至尝试了最新的)。
所以在每次测试之前,我运行这个:

easyRandom = new EasyRandom(new EasyRandomParameters().collectionSizeRange(1, 2));

然后在我的测试中,我生成了一个对象,它包含一个内部对象,该内部对象还包含一个SomeObject列表

MyObj obj = easyRandom.nextObject(MyObj.class);

它工作正常。它生成对象,甚至用1-2个元素填充内部集合。我的一个同事遇到了一个问题,内部集合是由0个元素生成的。以为是他设的圈套。但是现在,我们的管道由于同样的问题而以建设失败告终。该集合由0个元素生成,测试失败,即使它在本地工作。
有没有人见过这种奇怪的虫子?

qaxu7uf2

qaxu7uf21#

这是我的案例:
默认情况下,如果你的类有一些已经初始化的字段,EasyRandom会跳过它们。
在声明时初始化也是如此,例如List<YourClass> yourList = new ArrayList<>()。即使集合本身为空,EasyRandom也会跳过此类字段。
您可以使用overrideDefaultInitialization(true)更改此行为

new EasyRandomParameters()
        .collectionSizeRange(1, 2)
        .overrideDefaultInitialization(true)

相关问题