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

测试spring-boot@Service类

田兴朝
2023-03-14
@Service
@EnableConfigurationProperties(AppProperties.class)
public class MongoService {

    private static final Logger logger = LoggerFactory.getLogger(MongoService.class);

    private MongoClient mongoClient;

    private final AppProperties properties;

    @Autowired
    public MongoService(AppProperties properties) {
        this.properties = properties;
    }

    /**
     * Open connection
     */
    public void openConnection() {

        try {
            mongoClient = new MongoClient(new MongoClientURI(properties.getMongoConnectionString()));
        } catch (Exception e) {
            logger.error("Cannot create connection to Search&Browse database", e);
            throw new BackendException("Cannot create connection to Search&Browse database");
        }
    }

}
@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = AppProperties.class)
public class MongoServiceTest {

    private static final Logger logger = LoggerFactory.getLogger(MongoServiceTest.class);

    @Autowired
    MongoService mongoService;

    @Test
    public void MongoServiceAutowired() {   
        assertNotNull(mongoService);
    }
}

org.springframework.beans.factory.unsatisfiedDependencyException:创建名为“MyPackage.MongoServiceTest”的bean时出错:通过字段“Mongo Service”表示的不满足的依赖项;嵌套异常为org.springframework.beans.factory.noSuchBeanDefinitionException:没有“Mypackage.services.mongo.mongoService”类型的合格bean可用:应至少有一个合格的自动候选bean。依赖项注释:{@org.SpringFramework.Beans.Factory.Annotation.AutoWired(required=true)}

有线索吗?我哪里不及格?

共有1个答案

于嘉许
2023-03-14

我假设您的AppPropertiesMongoService不在同一个包中

如果不是,您可以以这种方式注入mongoservice:

创建另一个名为TestConfiguration的类

@ComponentScan(basePackageClasses = {
        MongoService.class,
        AppProperties.class
})
@SpringBootApplication
public class TestConfiguration {
    public static void main(String[] args) {
        SpringApplication.run(TestConfiguration.class, args);
    }
}
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestConfiguration.class) 
public class MongoServiceTest {

    private static final Logger logger = LoggerFactory.getLogger(MongoServiceTest.class);

    @Autowired
    MongoService mongoService;

    @Test
    public void MongoServiceAutowired() {   
        assertNotNull(mongoService);
    }
}
 类似资料:
  • 我正在为充当MongoDB接口的Spring Boot Web应用程序编写服务测试。理想情况下,我的服务测试将测试我的Spring应用程序的每个组件,然后最后测试一个被嘲弄的。下面的代码使用MockMvc命中我的webendpoint。 包含一个@AutoWired,它反过来实现并需要一个bean。只有在能够找到运行中的MongoDB实例时,此代码才能正确执行(此示例更多地是我的服务和MongoD

  • 8.4.1.测试 Service 好,我们可以运行我们的程序并启动 Service ,观察 Logcat 中记录的朋友消息。 D/UpdaterService( 310): Marko Gargenta: it is great that you got my message D/UpdaterService( 310): Marko Gargenta: hello this is a test

  • 8.2.5.测试Service 现在可以重启你的程序(仿真器是不需要重启的)。当你的程序启动时,单击菜单选项中新增的按钮,即可随意控制 Service 的启动与停止。 检验 Service 是否正常执行的话,打开 Logcat 查看程序生成的日志信息。在"Android的日志机制"一节中我们曾提到,查看 Log 既可以通过 Eclipse ,也可以通过命令行。 检验Service正常执行的另一条途

  • 我有一个运行没有问题的Spring启动应用程序。我想编写一些单元测试,但遇到了以下异常: 我只想测试一个@Service注释bean,并将其正确连接起来。 我试图用测试范围在maven中添加缺少的库,但没有效果。 我做错了什么?我感谢任何帮助。

  • 问题内容: 我开发了一个Spring Boot / Angular JS应用程序。现在,我正在尝试实现一些GUI界面测试。 我尝试使用Selenium ChromeDriver,因此添加了Selenium依赖项: 我创建了第一个测试: 这很好。但是现在我想让我的应用页面具有: 但是我在Chrome浏览器中看到了“ ERR_CONNECTION_REFUSED”。 我认为这是因为我需要先设置测试才能

  • 下面是我的应用程序主类: 但当我运行这个程序时,我得到了一个非常奇怪的错误: groovyx.net.http.restclient:解析'application/json'响应时出错