Невозможно новый объект, возвращенный из прокси-сервера - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь протестировать объект с помощью proxyquire.Объект представляет собой простой класс JavaScript / TypeScript с некоторыми зависимостями.Я использую proxyquire с sinon для переопределения этих зависимостей, и это работает нормально.но я не могу создать новый экземпляр класса для запуска его методов в тестовой программе.

Я пытался создать статический метод в классе, который возвращает новый экземпляр, но ошибка «Proxy.create не является функцией»

// a stub of one of the dependents in 
const poolRepositoryStub = {
  insert: _.constant({}),
  '@noCallThru': true,
};

const Proxy = proxyquire('../../dist/src/components/proxy.js', {
  '../repository/pool-repository': poolRepositoryStub,
  '@noCallThru': true,
});

describe('Test ReportCheckComponent', () => {
  before(() => {   
    // this one failed say Proxy is not a constructor
    new Proxy()

    // and this one also failed on Proxy.create is not a function
    Proxy.create();
  });

  it('report-check.spec.ts: test run method using sinon stub', () => {        

    sinon
      .stub(poolRepositoryStub, 'insert')
      .returns(Promise.resolve(null))

    // ... the rest of the test code


  });
});

1 Ответ

0 голосов
/ 01 апреля 2019

Мой тестируемый объект написан в машинописи с экспертом, как это:

export default class MyClass { ... }

измените его на:

export = MyClass;

решите проблему

...