如何在 assertThat 中使用带有类型推断的 hamcrest nullValue
How to use hamcrest nullValue with type inference in assertThat
我需要使用 junit 5 和 assertThat 编写测试用例来检查空值。
我写的如下。然而,这给出了关于不匹配数据类型的错误。
@Test
void shouldReturnNull() {
assertThat(OffsetDateTimeConverter.toOffsetDateTime(null), nullValue(OffsetDateTime.class));
}
这个也试过了。然而同样的错误。
@Test
void shouldReturnNull() {
assertThat(OffsetDateTimeConverter.toOffsetDateTime(null), is(nullValue(OffsetDateTime.class)));
}
任何example/suggestion如何使用nullValue(T类型)来解决这个问题?
我需要编写测试用例,以验证 java.sql.Date 是否使用我的转换器 class 正确转换为 java.time.OffsetDateTime。因此,我写成如下。
@Test
void toOffsetDateTime() {
Date date = new Date(System.currentTimeMillis());
assertThat(date.toLocalDate()).isEqualTo(OffsetDateTimeConverter.toOffsetDateTime(date).toLocalDate());
}
以上测试用例工作正常。
我想知道这是否是一种正确的方法,因为我将实际值和预期值都转换为本地日期以进行比较?
在我看来你使用了错误的assertThat
方法。
您正在使用 assertj
中的 assertThat
方法,而您应该使用 hamcrest one。例如:org.hamcrest.MatcherAssert.assertThat
我需要使用 junit 5 和 assertThat 编写测试用例来检查空值。
我写的如下。然而,这给出了关于不匹配数据类型的错误。
@Test
void shouldReturnNull() {
assertThat(OffsetDateTimeConverter.toOffsetDateTime(null), nullValue(OffsetDateTime.class));
}
这个也试过了。然而同样的错误。
@Test
void shouldReturnNull() {
assertThat(OffsetDateTimeConverter.toOffsetDateTime(null), is(nullValue(OffsetDateTime.class)));
}
任何example/suggestion如何使用nullValue(T类型)来解决这个问题?
我需要编写测试用例,以验证 java.sql.Date 是否使用我的转换器 class 正确转换为 java.time.OffsetDateTime。因此,我写成如下。
@Test
void toOffsetDateTime() {
Date date = new Date(System.currentTimeMillis());
assertThat(date.toLocalDate()).isEqualTo(OffsetDateTimeConverter.toOffsetDateTime(date).toLocalDate());
}
以上测试用例工作正常。
我想知道这是否是一种正确的方法,因为我将实际值和预期值都转换为本地日期以进行比较?
在我看来你使用了错误的assertThat
方法。
您正在使用 assertj
中的 assertThat
方法,而您应该使用 hamcrest one。例如:org.hamcrest.MatcherAssert.assertThat