为了账号安全,请及时绑定邮箱和手机立即绑定

DataJpaTest 正在寻找 HttpServletRequest

DataJpaTest 正在寻找 HttpServletRequest

暮色呼如 2021-07-14 17:09:34
我有一个关于 DataJpaTest 注释使用的问题。我正在尝试测试 Jpa 存储库,完全如文档中所示。我收到无法解析 HttpServletRequest 的错误。这是因为我的另一个 bean 正在使用它。为什么测试试图使用无关的 bean?我希望 DataJpaTest 只加载与 Jpa 相关的 bean、存储库等。它似乎正在尝试加载所有 bean,当然这些 bean 有自己的依赖项。编写 DataJpaTest 以便我只关注我的 Jpa 存储库的正确方法是什么?这是在 Java 8、Spring Boot 2 和 junit 5 上。更新 1:感谢大家的评论。我的测试类实际上是基于文档。我的 Spring Boot 应用程序类是这样的:@SpringBootApplication@EnableSwagger2@EnableCorsFilter@ComponentScan(basePackages = {"com.acme.superapp"})@SuppressWarnings("HideUtilityClassConstructor")public class Swagger2SpringBoot {    public static void main(String[] args) {        new SpringApplication(Swagger2SpringBoot.class).run(args);    }}这实际上很有帮助,因为在我删除了“ComponentScan”注释后,我得到了一个与 Swagger 相关的不同错误。所以看起来这些注释正在影响我的测试。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

谢谢你们的评论。M. Deinum 和 shinjw 的评论向我展示了正确的道路。我需要缩小入口点,以便它没有任何额外的东西。

根据文档

如果您以合理的方式构建代码,默认情况下将使用 @SpringBootApplication 类作为测试的配置。

重要的是不要在应用程序的主类中使用特定于其功能特定区域的配置设置。

因此,我将ComponentScanEnableSwagger2注释移到了其他地方,在不同的Configuration类中,这就成功了。

谢谢你的帮助!


查看完整回答
反对 回复 2021-07-29
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信