我使用的是简单随机(4.1.0,但甚至尝试了最新的)。
所以在每次测试之前,我运行这个:
easyRandom = new EasyRandom(new EasyRandomParameters().collectionSizeRange(1, 2));
然后在我的测试中,我生成了一个对象,它包含一个内部对象,该内部对象还包含一个SomeObject列表
MyObj obj = easyRandom.nextObject(MyObj.class);
它工作正常。它生成对象,甚至用1-2个元素填充内部集合。我的一个同事遇到了一个问题,内部集合是由0个元素生成的。以为是他设的圈套。但是现在,我们的管道由于同样的问题而以建设失败告终。该集合由0个元素生成,测试失败,即使它在本地工作。
有没有人见过这种奇怪的虫子?
1条答案
按热度按时间qaxu7uf21#
这是我的案例:
默认情况下,如果你的类有一些已经初始化的字段,EasyRandom会跳过它们。
在声明时初始化也是如此,例如
List<YourClass> yourList = new ArrayList<>()
。即使集合本身为空,EasyRandom也会跳过此类字段。您可以使用
overrideDefaultInitialization(true)
更改此行为