用Javascript扩展实例

时间:2019-01-30 09:29:45

标签: javascript node.js class ecmascript-6 mocking

问题

我正在尝试扩展已经创建的Class实例。

我正在使用node-http-mocks创建requestresponse模拟以进行快速App单元测试。我使用此库创建请求模拟的方式是:

const httpMocks = require('node-mocks-http')

let req = httpMocks.createRequest(options)
console.log(req)

打印:

EventEmitter {
  domain: null,
  _events: {},
  _eventsCount: 0,
  _maxListeners: undefined,
  method: 'GET',
  url: '',
  originalUrl: '',
  baseUrl: '',
  path: '',
  params: {},
  cookies: {},
  headers: {},
  body: {},
  query: {},
  files: {},
  header: [Function],
  get: [Function],

由于我需要重复使用相同的函数,因此我想创建一个Request类来使用,而该类基本上应包含先前req的所有方法和属性。

所以我可以做类似的事情:

req = new Request(options)
req = req.mockAuthorizationToken(token)

想法

不确定如何实现此目标,甚至可能实现。

我应该从EventEmitter扩展吗?并使用以下命令将其传递到node-http-mocks

const EventEmitter = require('./mockEventEmitter')
const httpMocks = require('node-mocks-http')

let req= httpMocks.createRequest({
  eventEmitter: new ExtendedEventEmitter()
});

谢谢!

0 个答案:

没有答案