有没有像Jqwik这样的工具可以轻松测试Google API的时间类? (日期时间、事件日期时间...等)

问题描述 投票:0回答:1

我正在致力于实现 Google 日历相关逻辑的测试代码,并遇到了一个名为 Fixture Monkey 的库。简单解释一下,Fixture Monkey 是一个在使用 JUnit 时方便创建测试对象的库。

Fixture Monkey 为 Jqwik 提供了一个插件,因此为 Java 支持的时间类(例如 LocalDateTime)生成任意值非常简单。

使用 Fixture-monkey 和 Jqwik 生成随机 LocalDateTime 值

default LocalDateTimeArbitrary localDateTimes() {
    LocalDateTime now = LocalDateTime.now();
    return DateTimes.dateTimes()
        .between(
            now.minusDays(365),
            now.plusDays(365)
        );
}

LocalDateTime生成TestCode

@Test
void localDateTimeRandomValueGenerationTest() {
    FixtureMonkey fixtureMonkey = new FixtureMonkeyBuilder()
        .plugin(new JqwikPlugin())
        .build();
    LocalDateTime localDateTime = fixtureMonkey.giveMeOne(LocalDateTime.class);
    System.out.println(localDateTime);
}

enter image description here

这门课让我的生活变得更加轻松......

但是,似乎Jqwik不支持Google API的时间类,例如EventDateTime。 因此,Fixture-Monkey 也不为 Google API 的时间类提供随机生成值。😥

所以我很好奇是否有像 Jqwik 这样的库支持 Google 的时间类。 如果有一个好的库用于测试 Google Calendar API,请推荐一个。

祝你有美好的一天 - 凯文

spring-boot junit google-api jqwik
1个回答
0
投票

感觉自从我自己开始创建图书馆以来已经过去了大约一个月..!

我终于实现了一个随机生成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 许可证获得许可。

我们计划继续开发更多功能。由于它还是一个早期的库,还有很多需要改进的地方。

如果您想贡献,请随时留下问题!

© www.soinside.com 2019 - 2024. All rights reserved.