我正在尝试测试在 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
我究竟做错了什么?有任何想法吗?