我有一个资源a,它有一个控制器,其中包含一个用于检索分页a项的endpoint:
public ResponseEntity getAllAs(
@PageableDefault(size = 25, value = 0) Pageable pageable) {
Page<A> pagedAs = .....
return ResponseEntity.ok(pagedAs);
}
当我尝试创建集成测试并使用TestRestTemplate调用此endpoint时,我遇到了一个问题,因为无法实例化页面
对象。
电话是这样的:
ResponseEntity<Page> response = template.getForEntity("/api/as,
Page.class );
这里是例外:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `org.springframework.data.domain.Page` (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information
at [Source: (PushbackInputStream); line: 1, column: 1]
我想这是一个正常的事实,
Page
无法实例化,但这限制了使用Spring Boot分页结果时的可测试性。
从Page更改控制器的响应
public ResponseEntity getAllAs(
@PageableDefault(size = 25, value = 0) Pageable pageable) {
Page < A > pagedAs = .....
return ResponseEntity.ok(pagedAs);
}
然后将使用API的位置从列表转换到页面
Page<T> page = new PageImpl<>(list);
我在我的模型中使用LocalDateTime,在包括LocalDateTimeDeserializer之后,将bean字段转换为 包括 属性在SpringBoot的应用程序中。属性文件,应用程序最终能够反序列化JSON并正确显示如下内容:, 但是,当我进行测试时,它会忽略WRITE_DATES_AS_TIMESTAMPS标志,我猜它会为上面相同的字符串日期生成一个输出, 请注意,在测试资源文件夹中
我正在尝试使用cassandra实现分页,但我在Stackoverflow上没有得到任何成功的解决方案。我遇到的突出错误是“对第一个页面以外的页面进行分页查询需要具有有效分页状态的CassandraPageRequest”。请协助。
我有几个繁重的Spring集成测试(是的,这不是最好的方法,我没有时间正确地模拟所有外部dep) 下面是测试的典型注释 由于以下原因,测试会定期失败: 这里有两个问题:1、让测试共存的正确方式是什么?我在surefire插件中设置了forkCount=0。好像有帮助 2.1. 在每次测试期间,我实际上不需要启动所有的
我正在使用TestRestTemplate对我们的产品进行集成测试。 我有一个测试如下: 此特定请求需要一个标头值。有人能告诉我如何向TestRestTemplate调用添加标题吗?
在Eclipse和Maven中运行基于SpringBoot的Java单元测试时,我得到了不同的结果。 我的测试成功地从命令行使用maven(mvn测试)运行,但在Eclipse中运行失败。 我使用与JDK相同的配置,在Eclipse中作为Maven Projekt导入。所以设置几乎相同,但结果却不一样:( 我有什么办法解决这个问题吗?或者有没有类似的问题? 其中大多数是我在使用eclipse运行测
与@mockbean和@spybean一样,有没有类似于@fakebean/@dummybean的东西? 其思想是,该实例是100%真实的(具有预期的生产内部状态),并且它覆盖(或者添加bean,以防在配置中没有声明)上下文中的bean。理想情况下,您不需要创建TestConfiguration类并将其设置为Primary,因为这样可以在每个测试的基础上控制假冒,只有在需要时才可以。否则它使用主的