0

我正在尝试测试在 SpringBoot 上创建的响应式 mongoDB 应用程序的服务类。

我不使用嵌入式 mongodb!我只是想模拟存储库

这是反应式 mongo 存储库:

package com.spb.budget_server.repository;

public interface EntryRepository extends ReactiveMongoRepository<Entry, String> {
  }

存储库,应该使用它:

package com.spb.budget_server.repository.impl;

@AllArgsConstructor
@Repository
public class EntryRepositoryImpl {

    private EntryRepository entryRepository;
    //
}

和测试类:

@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = {EntryRepositoryImpl.class, EntryRepository.class})   
public class EntryServiceTest {

    @Autowired
    private EntryRepositoryImpl entryRepositoryImpl;
       //
  }

主要配置:

@Configuration
@EnableReactiveMongoRepositories()
public class MongoConfig extends AbstractReactiveMongoConfiguration {
  // some db-settings
}

可能是这种情况没关系,但测试配置是:

 @TestConfiguration
 public class TestConfig {
    @Bean
    public EntryRepositoryImpl mockEntryRepositoryImpl() {
         return Mockito.mock(EntryRepositoryImpl.class);
      }
 }

而且,运行测试后,我收到以下异常:

Error creating bean with name 'entryRepositoryImpl':

造成的:

  NoSuchBeanDefinitionException: No qualifying bean of type 'com.spb.budget_server.repository.EntryRepository' available: expected at least 1 bean which qualifies as autowire candidate

我究竟做错了什么?有任何想法吗?

4

0 回答 0