猿问

DataJpaTest 正在寻找 HttpServletRequest

我有一个关于 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 相关的不同错误。


所以看起来这些注释正在影响我的测试。


暮色呼如
浏览 177回答 1
1回答

杨魅力

谢谢你们的评论。M. Deinum 和 shinjw 的评论向我展示了正确的道路。我需要缩小入口点,以便它没有任何额外的东西。根据文档:如果您以合理的方式构建代码,默认情况下将使用 @SpringBootApplication 类作为测试的配置。重要的是不要在应用程序的主类中使用特定于其功能特定区域的配置设置。因此,我将ComponentScan和EnableSwagger2注释移到了其他地方,在不同的Configuration类中,这就成功了。谢谢你的帮助!
随时随地看视频慕课网APP

相关分类

Java
我要回答