Wie testen Sie eine stub-Rückkehr ein Versprechen in einer async-test?

Wie kann ich testen, dies in eine asynchrone Weise?

it('Should test something.', function (done) {

    var req = someRequest,
        mock = sinon.mock(response),
        stub = sinon.stub(someObject, 'method');

     //returns a promise
     stub.withArgs('foo').returns(Q.resolve(5));

     mock.expects('bar').once().withArgs(200);

     request(req, response);

     mock.verify();

});

Und hier ist die Methode zu testen.

var request = function (req, response) {

    ...

    someObject.method(someParameter)
        .then(function () {
            res.send(200);
        })
        .fail(function () {
            res.send(500);
        });

};

Wie Sie sehen können ich bin mit node.js Q (für das Versprechen), sinon für Spott und stubbing und mocha als Testumgebung. Der test über fehl, weil der async-Verhalten von der request-Methode, und ich weiß nicht, Wann getan ( ... ) in den test.

  • Einfachste Weg, fand ich in der Arbeit mit asynchronen Aufrufe, wenn Sie verwenden möchten, die Antwort, war die Pause die Funktion in 2 an dem Punkt, wo die Reaktion nötig ist, und rufen Sie den zweiten Teil, wenn die Antwort empfangen wird.
  • Sie müssen eine Antwort auswählen, nicht nur upvote.
InformationsquelleAutor Stefan | 2013-04-15
Schreibe einen Kommentar