春季测试中的@QuerydslPredicate 在standaloneSetup 中失败

Posted

技术标签:

【中文标题】春季测试中的@QuerydslPredicate 在standaloneSetup 中失败【英文标题】:@QuerydslPredicate in spring test fails in standaloneSetup 【发布时间】:2016-03-03 10:09:00 【问题描述】:

我正在使用这里的春季文档中建议的@QuerydslPredicate。

QueryDSL web support 当我运行 Web 应用程序时,一切正常。但是对于我使用的测试用例

MockMvcBuilders.standaloneSetup(classificationResource)

我遇到了异常:-

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mysema.query.types.Predicate]: Specified class is an interface
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101)

当我使用 .

加载完整上下文时,一切正常。
 MockMvcBuilders.webAppContextSetup(wac).build();

我的问题是如何在standaloneSetup 中进行这项工作?

【问题讨论】:

【参考方案1】:

在这种情况下将帮助下一个解析器:org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver

注入这个解析器:

@Inject
private QuerydslPredicateArgumentResolver querydslPredicateArgumentResolver;

然后将解析器添加到上下文中:

MockMvcBuilders.standaloneSetup(classificationResource)
        .setCustomArgumentResolvers(querydslPredicateArgumentResolver)
        .build();

【讨论】:

以上是关于春季测试中的@QuerydslPredicate 在standaloneSetup 中失败的主要内容,如果未能解决你的问题,请参考以下文章

Spring @QuerydslPredicate 问题

Maven的验证上启动和每个班级停止春季测试运行

使用嵌入式 Kafka 进行春季 Kafka 集成测试

如何在春季测试 LDAP 安全配置?

春季启动测试 - 找不到测试属性

春季测试 DBunit 警告