Javascript 是否可以使用axios模拟适配器在模拟回复中应用passThrough()?

Javascript 是否可以使用axios模拟适配器在模拟回复中应用passThrough()?,javascript,axios,axios-mock-adapter,Javascript,Axios,Axios Mock Adapter,环境: NodeJS 8.1.2 axios 0.16.2 axios-mock-adapter 1.9.0 在测试JSON-RPC端点时,我是否能够执行以下操作: const mockHttpClient = new MockAdapter(axios, { delayResponse: 50 }) mockHttpClient.onPost().reply((config) => { // Capture all POST methods const dataObj = JSO

环境:

NodeJS 8.1.2
axios 0.16.2
axios-mock-adapter 1.9.0
在测试JSON-RPC端点时,我是否能够执行以下操作:

const mockHttpClient = new MockAdapter(axios, { delayResponse: 50 })

mockHttpClient.onPost().reply((config) => { // Capture all POST methods
  const dataObj = JSON.parse(config.data) // Example data: '{"jsonrpc":"2.0","method":"getProduct","params":[123],"id":0}'

  if (dataObj.method === 'getProduct') { // Recognised method, provide mock response override
    return [200, { jsonrpc: '2.0', id: 0, result: { productId: 123, productName: 'Lorem' } }]
  }

  // TODO: PassThrough for all non-recognised methods
})

mockHttpClient.onAny().passThrough() // Allow pass through on anything that's not a POST method

您可以通过将调用传递到
reply
回调中的原始适配器来实现这一点:

mockHttpClient.onPost().reply((config) => { // Capture all POST methods
  const dataObj = JSON.parse(config.data) // Example data: '{"jsonrpc":"2.0","method":"getProduct","params":[123],"id":0}'

  if (dataObj.method === 'getProduct') { // Recognised method, provide mock response override
    return [200, { jsonrpc: '2.0', id: 0, result: { productId: 123, productName: 'Lorem' } }]
  }

  // PassThrough for all non-recognised methods
  return mockHttpClient.originalAdapter(config);
})
它本质上就是
passThrough()
所做的