При использовании SinonJS в Typescript частные свойства сообщаются как отсутствующие - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь заглушить экземпляр класса, используя sinon.createStubInstance, но получаю сообщение об ошибке, указывающее, что закрытая переменная-член отсутствует.Конечно, я не могу явно установить его, потому что это закрытый член.

Примеры классов:

class Foo {
  private readonly bar: string;

  constructor(bar: string) {
    this.bar = bar;
  }
}

class Parent {
  foos: Foo[];

  constructor(foos: Foo[]) {
    this.foos = foos;
  }
}

И в тесте я пишу блок beforeEach:

beforeEach(function () {
  const stubFoo = sinon.createStubInstance(Foo);

  const stubParent = sinon.createStubInstance(Parent);
  stubParent.foos = [stubFoo]; // Tslint error here
});

Ошибка Tslint:

Свойство 'bar' отсутствует в типе 'SinonStubbedInstance', но требуется в типе 'Foo'

Длязапись Я использую Typescript v3.0.3 и Sinon v7.4.1.

...