Stubben einer React-Komponentenmethode mit Sinon

Ich versuche, die stub ein Reagieren Komponente Verfahren für die Prüfung Zweck:

var Comp = React.createClass({
  displayName: "Comp",

  plop: function() {
    console.log("plop");
  },

  render: function() {
    this.plop();
    return React.DOM.div(null, "foo");
  }
});

var stub = sinon.stub(Comp.type.prototype, "plop");
React.addons.TestUtils.renderIntoDocument(Comp());
sinon.assert.called(stub); //throws

Diese leider hält Druck "plop" auf der Konsole... und die assertion fehlschlägt.

Hinweis: Direkt stubbing der spec-Objekt-Methode funktioniert, aber dann haben Sie, um die Komponente exportieren Konstruktor und die spec getrennt, so sind Sie beide in tests... Außerdem müssten Sie stub die Skillung sogar noch vor dem erstellen der Komponente-Klasse, nur nicht so bequem:

var CompSpec = {
  displayName: "Comp",

  plop: function() {
    console.log("plop");
  },

  render: function() {
    this.plop();
    return React.DOM.div("foo");
  }
};

var stub = sinon.stub(CompSpec, "plop");
var Comp = React.createClass(CompSpec);
React.addons.TestUtils.renderIntoDocument(Comp());

//plop() is properly stubbed, so you can
sinon.assert.called(stub); //pass

Können Sie denken, eine andere Strategie zu leicht stub ein Reagieren Komponente Methode?

InformationsquelleAutor der Frage NiKo | 2014-06-18

Schreibe einen Kommentar