Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧IT测试失败_Java_Spring_Spring Mvc_Spring Data_Querydsl - Fatal编程技术网

Java 弹簧IT测试失败

Java 弹簧IT测试失败,java,spring,spring-mvc,spring-data,querydsl,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); } 应用程序按照预期使用此新端点。我现在想添加一个Spring IT测试来测试这个新特性 这就是测试

我在spring(不是spring boot)应用程序中添加了一个新的querydsl控制器方法

@GetMapping("/watcher")
@ResponseBody
public List<Watcher> getWatchers(final Predicate predicate) {
  return repo.findAll(predicate);
}
应用程序按照预期使用此新端点。我现在想添加一个Spring IT测试来测试这个新特性

这就是测试:

@Test
public void test() {
  mvc.perform(get("/watcher"));
}
测试类包含以下注释:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringITConfig.class)
@WebAppConfiguration
其他测试也存在于同一个类中,perform()适用于这些测试,但这是我第一次向querydsl控制器添加测试

测试失败,未找到接口com.querydsl.core.types.Predicate的主构造函数或默认构造函数

我尝试将注释
@EnableSpringDataWebSupport
添加到我的测试中,但它没有改变任何东西

我错过了什么


谢谢

尝试删除您的
@ContextConfiguration
并将其替换为
@SpringApplicationConfiguration(classes=your_MAIN_APP_CLASS)
,以引导所有需要的querydsl存储库,以及谓词类的正确jackson映射程序。

您检查过这篇帖子吗?是的,它说要将注释
EnableSpringDataWebSupport
也添加到测试中,这是我在问题中提到的,但它不会改变结果正如我在问题中所说的,我不使用spring引导。我没有主课。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringITConfig.class)
@WebAppConfiguration