java - Spring IT 测试失败
问题描述
我在我的 spring(不是 spring boot)应用程序中添加了一个新的 querydsl 控制器方法。
@GetMapping("/watcher")
@ResponseBody
public List<Watcher> getWatchers(final Predicate predicate) {
return repo.findAll(predicate);
}
我还在我的 WebMvcConfigurer 实现中添加了以下注释:
@EnableSpringDataWebSupport
应用程序按预期使用这个新端点。我现在想添加一个 Spring IT 测试来测试这个新特性。
这是测试:
@Test
public void test() {
mvc.perform(get("/watcher"));
}
测试类包含以下注解:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringITConfig.class)
@WebAppConfiguration
其他测试存在于同一类中,并且 perform() 适用于这些,但这是我第一次向 querydsl 控制器添加测试。
测试失败,出现No primary or default constructor found for interface com.querydsl.core.types.Predicate
.
我尝试将注释添加@EnableSpringDataWebSupport
到我的测试中,但它并没有改变任何东西。
我错过了什么?
谢谢
解决方案
尝试删除您的@ContextConfiguration
并将其替换@SpringApplicationConfiguration(classes = YOUR_MAIN_APP_CLASS)
为引导所有需要的 querydsl 存储库,以及您的谓词类的正确杰克逊映射器。
推荐阅读
- javascript - 正则表达式测试静态 URL
- flutter - 如何推送不可移动/可滑动的推送通知
- c# - 在电子邮件值中间插入无效字符 (??)
- php - 在按字母顺序分组数组时计算php中的标题字符?
- azure-devops - 如何将文件夹存档为 tar.bz2 文件并从 Azure Artifacts 上传到通用包
- reactjs - 如何配置 Netlify CMS 将博客存储在不同的文件夹下,而不是直接在项目根目录下
- python - 如何查看电子邮件中的附件数量?
- c# - 带有 .NET API 的 CQRS 模式 - 将请求对象与命令/查询分开
- python - 如何允许用户在海龟屏幕窗口中输入数据
- python - Python selenium 无法在 iframe 中定位元素