我正在致力于实现 Google 日历相关逻辑的测试代码,并遇到了一个名为 Fixture Monkey 的库。简单解释一下,Fixture Monkey 是一个在使用 JUnit 时方便创建测试对象的库。
Fixture Monkey 为 Jqwik 提供了一个插件,因此为 Java 支持的时间类(例如 LocalDateTime)生成任意值非常简单。
default LocalDateTimeArbitrary localDateTimes() {
LocalDateTime now = LocalDateTime.now();
return DateTimes.dateTimes()
.between(
now.minusDays(365),
now.plusDays(365)
);
}
@Test
void localDateTimeRandomValueGenerationTest() {
FixtureMonkey fixtureMonkey = new FixtureMonkeyBuilder()
.plugin(new JqwikPlugin())
.build();
LocalDateTime localDateTime = fixtureMonkey.giveMeOne(LocalDateTime.class);
System.out.println(localDateTime);
}
这门课让我的生活变得更加轻松......
但是,似乎Jqwik不支持Google API的时间类,例如EventDateTime。 因此,Fixture-Monkey 也不为 Google API 的时间类提供随机生成值。😥
所以我很好奇是否有像 Jqwik 这样的库支持 Google 的时间类。 如果有一个好的库用于测试 Google Calendar API,请推荐一个。
祝你有美好的一天 - 凯文
感觉自从我自己开始创建图书馆以来已经过去了大约一个月..!
我终于实现了一个随机生成Google时间类的库(EventDateTime)
首先,将以下依赖项添加到您的 Gradle / Maven 配置中。
建议检查以下链接以验证是否是最新版本。
// gradle
implementation 'io.github.yonggoose:MaKer:0.6.0'
//maven
<dependency>
<groupId>io.github.yonggoose</groupId>
<artifactId>MaKer</artifactId>
<version>0.6.0</version>
</dependency>
第二您可以按如下方式创建EventDateTime
EventDateTimeArbitrary eventDateTimeArbitrary = EventDateTimeArbitrary.builder()
.setYear(2024)
.setMonth(7)
.setDay(7)
.build();
EventDateTime eventDateTime = eventDateTimeArbitrary.getEventDateTime();
您可以使用 EventDateTimeArbitraryBuilder 类来指定年月日,还可以使用
LocalDateTime
定义范围。
该项目是开源的,并根据 EPL-2.0 许可证获得许可。
我们计划继续开发更多功能。由于它还是一个早期的库,还有很多需要改进的地方。