junit模拟childservice中的abstractservice方法

qv7cva1a  于 2021-06-26  发布在  Java
关注(0)|答案(2)|浏览(350)

我有一个taskservice,它扩展了抽象服务。
在abstractservice中,我有一个方法getcurrentuserroleentity,它由服务中的不同方法使用。此方法使用存储库查找当前角色。
在我的任务服务中,我有一个方法来查找当前用户角色和类别的任务,这个方法有两个参数,caegoryid和getcurrentuserroleentity方法。

public List<Task> findTaskByCategoryIdForCurrentUserRole(Long categoryId) {
    return vTacheAffaireRepository.findTaskByCategoryIdForCurrentUserRoleOrderByEcheanceAscTacheIdAsc(categoryId, getCurrentUserRoleEntity().getId())
        .stream().map(vTaskMapper::toDto).collect(Collectors.toList());
}

当我测试调用服务的rest ressource时,我想模拟getcurrentuserroleentity来使用我的测试实体,而不是使用真正的方法。
我试过不同的方法,但没有一种能满足我的需要。你知道如何在rest测试中模拟这个方法吗?
谢谢,

pinkon5k

pinkon5k1#

尝试在测试中重写该方法,如果您的方法是公共的,您可以定义一个名为 TestTaskService ```
TestTaskService extends TaskService {
@Override
public List findTaskByCategoryIdForCurrentUserRole(Long categoryId) {
//provide mock implementation
}

}

7hiiyaii

7hiiyaii2#

非常简单的方法是,可以为getcurrentuserroleentity()方法创建setter和getter,通过该方法可以插入模拟对象示例而不是实际对象示例。

相关问题