node.js - NodeJS 模拟第 3 方服务

标签 node.js ajax testing request

我有一个示例端点,当向它提交请求时,我向第三方服务发出另一个请求,结果有时会出现故障。我想模拟此服务出现故障,以便我的测试具有相关性。 这是一些示例代码

it('should handle malfunctional 3rd party service', done => {
  Frisby.post(Endpoints.randomEndpoint, {
    email: 'johndoe@gmail.com',
    firstName: 'John',
    lastName: 'Doe'
  })
  .expect('status', 400)
  .expect('jsonTypes', Common.Types.ErrorModel)
  .done(done);
});

在我的服务器端,我有类似的东西..

app.post('randomEndpoint', (req, res) => {
  request('http://3rdpaty.com/api')
    .then(data => {
      res.send(200);
    })
    .catch(err => {
      res.send(500);
    })
})

我的目标是模拟第三方服务的响应。有什么想法吗?

最佳答案

您可以使用 nock library 模拟您的 http 请求

nock('http://3rdpaty.com/')')
 .post('/api/', {
   email: 'johndoe@gmail.com',
   firstName: 'John',
   lastName: 'Doe'
 })
 .reply(400, { id: '123ABC' });

关于node.js - NodeJS 模拟第 3 方服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876645/

相关文章:

javascript - 引用错误 : json is not defined when AJAX call the server method

javascript - Ajax、Javascript 变量和服务器端变量 - Rails

ajax - 仅在 Accordion Primefaces 的选项卡上更新

node.js - Bot 服务不适用于 Node.js 。错误找不到模块 'botbuilder'

node.js - 您如何强制 Azure 网站中 node.js 上的 express 使用 https?

node.js - 带有 express : Missing PFX or certificate + private key. 的 socket.io 中的 SSL

http - 在设备上测试 http 连接

javascript - 关于 nodejs server.listen()

javascript - 我如何从网络元素中获取文本并在控制台中打印(例如)

android - 如何在我的手机/应用程序上测试 AdMob?