我在我的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
添加到测试中,但没有任何改变。
我想念什么?
谢谢
答案 0 :(得分:0)
尝试删除您的@ContextConfiguration
并将其替换为@SpringApplicationConfiguration(classes = YOUR_MAIN_APP_CLASS)
,以引导所有需要的querydsl存储库,以及用于谓词类的正确杰克逊映射器。