首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mockito方法调用链

Mockito方法调用链
EN

Stack Overflow用户
提问于 2020-02-07 17:03:47
回答 1查看 112关注 0票数 0
代码语言:javascript
复制
  @PostMapping("/node{id}/delete")
  public ResponseEntity<CallbackResponse> delete(@RequestParam("eventId") String eventId, @RequestParam("id") String nodeId) throws ResourceNotFoundException {

      serviceA.remove(eventId);
      client.getServiceB().deleteById(nodeId);
      return new ResponseEntity<>(new CallbackResponse(true), HttpStatus.OK);
  }

我是个单元测试新手。请帮助我为上面的rest控制器方法编写测试用例

我试过下面的测试,但它不起作用

代码语言:javascript
复制
    @Test
    public void testDeleteAgent() throws Exception{
        ServiceA serviceA = Mockito.mock(ServiceA.class);
        NodeClient client = Mockito.mock(NodeClient.class);

        Mockito.doNothing.when(serviceA).remove(Mockito.any());
        Mockito.doNothing.when(client.getServiceB()).deleteById(Mockito.any());
        ResponseEntity<CallbackResponse> result = agentController.delete("123", "456");
        Assert.assertEquals(HttpStatus.OK.value(), result.getStatusCode());
    }

当我运行上面的测试时,我得到未完成的存根检测到这里错误

我是这样创建模拟控制器的

代码语言:javascript
复制
    private ServiceA serviceA = Mockit.mock(ServiceA.class);
    private NodeClient client = Mockit.mock(NodeClient.class);
    private AgentController agentController = new Controller(serviceA, client);
EN

回答 1

Stack Overflow用户

发布于 2020-02-07 17:32:07

假设某个地方有一个ServiceB类,让我们尝试一下

代码语言:javascript
复制
public class AgentController{

  @Inject
  private Client client;


  @PostMapping("/node{id}/delete")
  public ResponseEntity<CallbackResponse> delete(@RequestParam("eventId") String eventId, @RequestParam("id") String nodeId) throws ResourceNotFoundException {

      serviceA.remove(eventId);
      client.getServiceB().deleteById(nodeId);
      return new ResponseEntity<>(new CallbackResponse(true), HttpStatus.OK);
  }
}

@RunWith(MockitoJUnitRunner.class)
public class AgentControllerTest{

    @InjectMocks
    private AgentController agentController;

    @Mock
    private Client client;

    public void test(){
        ServiceB serviceB = Mockito.mock(ServiceB.class);
        Mockito.doReturn(serviceB).when(client).getServiceB();
        Mockito.doNothing().when(serviceB).deleteById(Mockito.any());

       // other here
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60110208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档