### Question:
WxMpKefuServiceImpl implements WxMpKefuService { @Override public boolean sendKfTypingState(String openid, String command) throws WxErrorException { JsonObject params = new JsonObject(); params.addProperty("touser", openid); params.addProperty("command", command); String responseContent = this.wxMpService.post(CUSTOM_TYPING, params.toString()); return responseContent != null; } WxMpKefuServiceImpl(WxMpService wxMpService); @Override boolean sendKefuMessage(WxMpKefuMessage message); @Override WxMpKfList kfList(); @Override WxMpKfOnlineList kfOnlineList(); @Override boolean kfAccountAdd(WxMpKfAccountRequest request); @Override boolean kfAccountUpdate(WxMpKfAccountRequest request); @Override boolean kfAccountInviteWorker(WxMpKfAccountRequest request); @Override boolean kfAccountUploadHeadImg(String kfAccount, File imgFile); @Override boolean kfAccountDel(String kfAccount); @Override boolean kfSessionCreate(String openid, String kfAccount); @Override boolean kfSessionClose(String openid, String kfAccount); @Override WxMpKfSessionGetResult kfSessionGet(String openid); @Override WxMpKfSessionList kfSessionList(String kfAccount); @Override WxMpKfSessionWaitCaseList kfSessionGetWaitCase(); @Override WxMpKfMsgList kfMsgList(Date startTime, Date endTime, Long msgId, Integer number); @Override WxMpKfMsgList kfMsgList(Date startTime, Date endTime); @Override boolean sendKfTypingState(String openid, String command);  }### Answer:
@Test public void testSendKfTypingState() throws WxErrorException { TestConfigStorage configStorage = (TestConfigStorage) this.wxService.getWxMpConfigStorage(); boolean result = this.wxService.getKefuService().sendKfTypingState(configStorage.getOpenid(), "Typing"); assertThat(result).isTrue(); }