您如何测试反应式 mongo 存储库?

Posted

技术标签:

【中文标题】您如何测试反应式 mongo 存储库?【英文标题】:How do you test a reactive mongo repository? 【发布时间】:2021-06-02 23:03:30 【问题描述】:

我正在尝试在此存储库中测试 findByPhoneNumber 方法

public interface UserRepository extends ReactiveMongoRepository<User, String> 

    Mono<User> findByPhoneNumber(String phoneNumber);


ATM,我的测试是这样的

@ExtendWith(SpringExtension.class)
class UserRepositoryTest 

    @Autowired
    private UserRepository repository;

    @Test
    void findByPhoneNumber() 
        val phoneNumber = "11111 111111";

        val user = repository.save(User.builder().phoneNumber(phoneNumber).password("password").build());

        assertEquals(user, repository.findByPhoneNumber(phoneNumber));
    


当我运行它时,我得到了这个错误

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'io.freesale.repository.UserRepositoryTest': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.freesale.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: @org.springframework.beans.factory.annotation.Autowired(required=true)

我是春季菜鸟,所以请不要欺负我太多????

【问题讨论】:

【参考方案1】:

我错过了@DataMongoTest 注释

【讨论】:

请使用您问题上的编辑链接添加其他信息。 Post Answer 按钮应仅用于问题的完整答案。 - From Review 这是一个完整的答案

以上是关于您如何测试反应式 mongo 存储库?的主要内容,如果未能解决你的问题,请参考以下文章

@@ DataJpaTest无法排除反应性mongo的存储库

如何使用反应测试库模拟 ResizeObserver 以在单元测试中工作

如何使用打字稿为反应测试库设置智能感知

如何使用 jest.mock 模拟 useRef 和反应测试库

如何在反应测试库中将参数传递给 getByText?

反应测试库:测试路由器重定向