gpt4 book ai didi

java - AssertThat 在日期比较中的用法

转载 作者:行者123 更新时间:2023-12-05 02:19:34 24 4
gpt4 key购买 nike

我想针对带日期的搜索编写测试。我正在考虑类似这样的测试代码

assertThat(repository.findByBookingDateAfter(LocalDate.of(2016, 1, 1))).extracting("bookingDate").are(...));

类结构如下所示:

public class Booking{
...
LocalDate bookingDate;
...
}

因为查询是在给定日期之后的任何预订,所以我的测试将检查确实晚于该日期的字段。经过一番网上搜索,我没有看到任何有用的信息。我想知道我是否在正确的轨道上。

有什么建议吗?

更新:

后来,我在build.gradle文件中更改依赖设置如下:

testCompile('org.springframework.boot:spring-boot-starter-test'){
exclude group: 'org.assertj'
}
testCompile group: 'org.assertj', name: 'assertj-core', version: '3.6.2'

拥有最新版本的assertj。

更新 2:

以下是任何以“is”开头的方法的屏幕截图。 “isAfter”不在列表中。

enter image description here

最佳答案

我会使用 allMatchallSatisfy 断言来检查每个提取的日期是否都在查询中使用的日期之后。

// set the extracted type to chain LocalDate assertion 
assertThat(result).extracting("bookingDate", LocalDate.class)
.allMatch(localDate -> localDate.isAfter(queryDate)));

// use a lambda to extract the LocalDate to chain LocalDate assertion
assertThat(result).extracting(Booking::getBookingDate)
.allSatisfy(localDate -> assertThat(localDate).isAfter(queryDate));

第二个断言会得到更好的错误消息,它会显示错误的日期。

关于java - AssertThat 在日期比较中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42305928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com