java - random-beans 初始化 bean 集合大小与配置大小不匹配
问题描述
我正在尝试使用 random-beans 库更快地创建我的测试 bean。使用的依赖项是(https://github.com/benas/random-beans):
<dependency>
<groupId>io.github.benas</groupId>
<artifactId>random-beans</artifactId>
<version>3.7.0</version>
<scope>test</scope>
</dependency>
豆类是:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String surname;
private Integer age;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<Book> books;
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String title;
private String description;
private Integer pages;
这是我的测试代码(将 collectionsize 限制为 1):
EnhancedRandom random = EnhancedRandomBuilder.aNewEnhancedRandomBuilder()
.charset(forName("UTF-8"))
.stringLengthRange(5, 50)
.collectionSizeRange(1, 1)
.scanClasspathForConcreteTypes(true)
.overrideDefaultInitialization(false)
.build();
User user = random.random(User.class);
assertThat(user.getBooks()).hasSize(1);
我的测试在这个断言中失败:
assertThat(user.getBooks()).hasSize(1);
为什么书籍大小与我使用随机对象配置的不同。这是为什么?
解决方案
您random
在非静态random
实例上调用静态方法,您应该调用该nextObject
方法:
User user = random.nextObject(User.class);
由于该方法EnhancedRandom.random
是静态的,因此它只需要默认配置选项,而不是在EnhancedRandom
实例上设置的选项。
希望这可以帮助。
推荐阅读
- php - 如何在二维码中添加个人信息链接
- css - 使用 for 循环或每个循环时,字符串从 SCSS 中的变量编译后删除
- lua - 试图理解“Lua 编程”一书中的例子
- python - 页面明显存在时出现 404 错误
- reactjs - 当两件事发生变化时反应触发 useEffect
- c# - 通过通用列表
使用 ViewBag 从 Controller 到 View 的数据 - python - ValueError:'z' 是 pandas 0.23.4 而不是 0.24.2 中格式为 '%Y-%m-%dT%H:%M:%S.%f%z' 的错误指令?
- c - 在 C 中释放本地定义的变量
- c# - 无法加载 Excel 工作表 Visual Studio 2019
- json - 从 esp8266 (arduinoIDE) 上的 json 获取长值时出现奇怪的错误