Получить экземпляр высмеянного класса с Sinon - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть следующий класс:

export class ServiceWrapper<T extends Service> {
    constructor(service: { new (...args: any[]): T }) {
        new service('property');
    }
}

Который можно назвать так:

const exampleService: ServiceWrapper<ExampleService> = new ServiceWrapper(ExampleService);

Используя Sinon, можно ли посмеяться над классом, который передается в параметр service, чтобы я мог получить доступ к параметрам, переданным конструктору service? Функциональность, которую я желаю, может выглядеть следующим образом:

let MockClass = Mock<Serivce>;

let mockedService = new ServiceWrapper(MockClass);

let mockInstance = MockClass.getInstance(0); // This being the object that was instantiated
...