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

如何模拟服务类中使用的助手方法?

甘永春
2023-03-14

如何模拟服务类中使用的助手方法。我试着找,但找不到,你能指导我吗?如何模拟服务类中使用的助手方法。我试着找,但找不到,你能指导我吗?

服务类功能:

@Autowired
private MongoOperationsUtil myUtil;
@Override
public MyResponse getUsage(MyData input)
{
    myUtil.checkExistance(input.getName);
    MyResponse resp = new MyResponse();
    resp.setUsage(usage);
    resp.setMetaInfo(input);
      
    return resp;
}

Helper class method - content:
@Autowired
private RedisUtil redisUtil;
///RedisUtil is a class I created for crud ops in redis

public void checkExistance(字符串名称){

    boolean inputFound = redisUtil.isKeyExists(name);
    if (!inputFound) {
         redisUtil.insert(name);
        
    }
    else{
        redisUtil.update(name);
     }

}

这是测试逻辑:@SpringBootTest@RunWith(MockitoJUnitRunner.class)公共类ApiUsageServiceTests{MongoOperationsUtil mongoUtilMock=Mockito.mock(MongoOperationsUtil.class);

@Test
public void getUsageTest() throws Exception{
 System.out.println("Checking getUsage() from service layer");

doNothing().when(mongoUtilMock).checkExistance(anyString());
// when()
mongoUtilMock.checkExistance(Mockito.anyString());
verify(mongoUtilMock,  
times(1)).checkExistance(Mockito.anyString());
}}

现在我需要为getUsage编写测试用例,通过模拟checkExistance助手方法,那么如何做到这一点以确保LOC的覆盖呢?

共有1个答案

蒯胜泫
2023-03-14
@Autowired
private MongoOperationsUtil myUtil;

您在myUtil中使用@Autowere。因此对象被注入到Spring容器中。

如果您想在测试用例中模拟它,请尝试使用@MockBean for MongoOperationUtil字段。

那你可以试试

    Mockito.when(myUtil.checkExistance(XXX)).thenReturn(YYY);

 类似资料:
  • 问题内容: 如何定义在模板帮助器中也可以调用的Meteor方法? 我有两个文件: 文件:lib / test.js 文件:client / myView.js 当我给“ str”一个普通的字符串时,一切正常。但是在这种情况下,我的模板没有任何价值。我为测试定义了该方法为普通函数的文件,并尝试调用该函数。我得到的错误是该功能不存在。因此,我认为Meteor会在不了解我为其定义的方法之前尝试渲染模板。

  • 问题内容: 通过使用Retrofit 1,我们曾经模拟了Web服务并模拟了网络延迟,如下所示: 服务接口在哪里(将响应作为Rx Observables返回),并且是实现此接口的类。 在Retrofit 2.0.0-beta3中,有一个尚未记录的全新模拟系统(请参阅:https : //github.com/square/retrofit/pull/1343)。当尝试类似的东西时,我得到: 如何将电

  • 我在Postman中运行了一个模拟服务器,我可以使用GET命令等访问它。 例如,我还可以从web浏览器中查看GET命令 这一切都很好,我的问题是当我尝试从IntelliJ访问模拟服务器时。该过程超时,如下所示。 任何想法请,提前谢谢。 已断开与目标VM的连接,地址:“127.0.0.1:55142”,传输:“socket” 进程结束,退出代码1

  • 我正在SpringMVC上使用Mockito进行JUnit测试。测试使用@InjectMock和@Mock with when(方法(…)。然后返回(X)。问题是如何在@Inject实例中@Mock方法? 我尝试过创建两个实例,例如@InjectMocks Foo foInstance和@Mock Foo foInstanceMock;我的思维方式是区分注入什么实例和嘲笑什么实例。我也尝试使用间谍

  • 我是新的mockito和jUnit我不明白为什么我得到错误和如何模仿这个服务类方法 请帮我解决这个问题。是否需要模拟可分页和切片对象。为什么在嘲笑PartnerEventRepository之后,我也会说 “需要但未调用:partnerEventRepository.findAll(Cassandra页面请求[编号:0,大小5,排序:未排序,分页状态:null]) 莫基托

  • 在我的服务类中,我有@Autowired HttpServletRequest,并且在我的服务方法中使用相同的对象,但是对于那个服务方法测试类,我不能在我的测试方法中模拟HttpServletRequest对象,请检查下面的代码。我正在获取请求对象的空指针异常