春季IT测试失败

时间:2020-08-26 10:23:08

标签: java spring spring-mvc spring-data querydsl

我在我的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添加到测试中,但没有任何改变。

我想念什么?

谢谢

1 个答案:

答案 0 :(得分:0)

尝试删除您的@ContextConfiguration并将其替换为@SpringApplicationConfiguration(classes = YOUR_MAIN_APP_CLASS),以引导所有需要的querydsl存储库,以及用于谓词类的正确杰克逊映射器。