Verspottung des JavaScript-Konstruktors mit Sinon.JS

Ich würde gern unit-Tests die folgenden ES6-Klasse:

//service.js
const InternalService = require('internal-service');

class Service {
  constructor(args) {
    this.internalService = new InternalService(args);
  }

  getData(args) {   
    let events = this.internalService.getEvents(args);
    let data = getDataFromEvents(events);
    return data;
  }
}

function getDataFromEvents(events) {...}

module.exports = Service;

Wie kann ich verspotte den Konstruktor mit Sinon.JS um zu verspotten getEvents von internalService zu testen getData?

Schaute ich Javascript: Mocking Konstruktor mit Sinon aber war nicht in der Lage, extrahieren Sie eine Lösung.

//test.js
const chai = require('chai');
const sinon = require('sinon');
const should = chai.should();

let Service = require('service');

describe('Service', function() {
  it('getData', function() {
    //throws: TypeError: Attempted to wrap undefined property Service as function
    sinon.stub(Service, 'Service').returns(0);
  });
});
Kommentar zu dem Problem - Öffnen
Werfen Sie einen Blick auf diese Frage: Javascript: Mocking Konstruktor mit Sinon. Kommentarautor: sdgluck
@sdgluck ich Tat, aber ich war nicht in der Lage, extrahieren Sie die Lösung für meinen Fall Kommentarautor: krl
Möglich, Duplikat der Javascript: Mocking Konstruktor mit Sinon Kommentarautor: Jon Schneider

InformationsquelleAutor der Frage krl | 2015-09-13

Schreibe einen Kommentar