拦截IBM的Watson Botkit中间件以进行测试

时间:2019-08-21 01:32:14

标签: node.js testing mocking ibm-watson watson-assistant

我的项目使用botkit-middleware-watson与IBM Watson进行交谈。现在,我需要为此Watson服务制作一个模拟服务器。

这只是调用Watson API的一行代码。

await watsonMiddleware.sendToWatsonAsync(bot, msg, null);

我的问题是,如何截获API调用并将该调用重定向到我的Watson Mock-Server?

1 个答案:

答案 0 :(得分:1)

this one之类的botkit-middleware-watson示例展示了如何配置WatsonMiddleware

const WatsonMiddleware = require('botkit-middleware-watson').WatsonMiddleware;

const middleware = new WatsonMiddleware({
  iam_apikey: process.env.ASSISTANT_IAM_APIKEY,
  workspace_id: process.env.WORKSPACE_ID,
  url: process.env.ASSISTANT_URL || 'https://gateway.watsonplatform.net/assistant/api',
  version: '2018-07-10'
});

...在ASSISTANT_URL中设置了.env。这似乎是配置模拟服务器/模拟器的URL的地方。

botkit的另一种选择是将模拟器称为HTTP代理,如果您使用的模拟器支持以HTTP代理运行,则为