当前位置: 首页 > 知识库问答 >
问题:

依赖注入在Spring Boot测试中不起作用,但在正常开发中起作用

宗翔宇
2023-03-14

我开始开发一个经典的Spring Boot MVC应用程序。我使用依赖注入(使用@service@autowired注释)没有任何问题。

当我尝试使用依赖注入运行某些集成测试时,我会以相同的方式从JUnit得到以下错误消息:

package hu.bookandwalk;

...

import hu.bookandwalk.config.MyNeo4jConfig;
import hu.bookandwalk.domain.*;
import hu.bookandwalk.services.*;

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
@ContextConfiguration(classes={MyNeo4jConfig.class})
public class RepositoryTests {

    @Autowired
    Session session;

    @Autowired
    UserService userService;
...

}

hu.bookandwalk.services包中,我有一个没有注释的userservice接口和一个用@service注释的userserviceimpl类。

我不明白,如果DI可以运行我的应用程序,那么为什么它在测试中不起作用。不知何故,我的注释实现类没有被spring boot发现,就像错误消息所说的那样。

测试与我的应用程序类位于同一个包中:hu.bookandwalk我的所有服务、存储库和域都位于以下文件中:hu.bookandwalk.services,hu.bookandwalk.domain,...

知道我错过了测试类的哪种注释来使userServiceImpl可被发现吗?

共有1个答案

宰父远
2023-03-14

尝试在@ContextConfiguration中插入UserServiceImpl.Class

 类似资料:
  • 我做了一个名为AcessoCliente的单例类 但我需要对我的单例类执行一个名为ValidadorNivelDeAcessoBusiness的类的依赖注入

  • 问题内容: 如何将Spring依赖注入到我编写的扩展AbstractTestExecutionListener的TestExecutionListener类中? Spring DI似乎不适用于TestExecutionListener类。问题示例: AbstractTestExecutionListener: 配置文件: JUnit测试文件: 如代码注释中突出显示的那样,当我运行此代码时,它将打印

  • 并添加注释 我得到一条消息:没有测试找到test runner JUnit5,并且在Problems选项卡中有SpringBootTest.jar无法读取或者不是有效的ZIP文件 也试过 我也试过: 如果我将字符串myUrl硬编码为“http://localhost:8090”,则测试工作正常,因此问题在于@value不工作

  • 问题内容: 我正在使用开放式天气地图api网络服务进行ajax调用,以便使用纬度和经度获取当前天气,问题是同一调用在我的常规php文件夹中有效,但在我的phongap应用程序中不起作用。我的ajax调用如下所示 我没有尝试将其更改为,但没有任何效果。请帮助我,因为我目前对此仍然感到困惑。 问题答案: 您是否已将config.xml中的网址列入白名单? 了解更多:http : //docs.phon

  • 文件src/main/webapp/WEB-INF/web.xml包含用于引导CDI的servlet侦听器和BeanManager引用: 通过这些设置,在使用mvn Jetty运行应用程序时,我总是遇到以下错误:run(第一行是最重要的): 应用程序正在运行,但正如异常消息所述:CDI注入在servlet中不可用。 在src/main/resources/log4j.properties中,我增加

  • 我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击