Stub Promises Dengan Sinon.JS

Promises dipercaya sebagai cara yang baik untuk melakukan async programming. Namun melakukan testing dengan promises sangatlah repot setelah mencari-cari seharian, aku mendapatkan library sinon-stub-promise yang cukup bagus untuk membantu mengatasi masalah ini.

npm install --save-dev sinon-stub-promise

Kemudian initialize lib tersebut bersama dengan sinon :

var sinon = require('sinon');
var sinonStubPromise = require('sinon-stub-promise');
sinonStubPromise(sinon);

Misalkan code yang akan diuji adalah sebagai berikut :

Repository.create(params)
.then(result => resolve(result))
.catch(err => reject(err));

Cara mengujinya adalah sebagai berikut jika menggunakan sinon stub promise:

// Test
describe('stubbing a promise', function() {
  var promise;

  beforeEach(function() {
    promise = sinon.stub().returnsPromise();
  });

  it('can resolve', function() {
    promise.resolves('resolve value')

    var testObject = {};
    doSomethingWithAPromise(promise, testObject);
    expect(testObject.resolved).to.eql('resolve value');
  });

  it('can reject', function() {
    promise.rejects('reject value')

    var testObject = {};
    doSomethingWithAPromise(promise, testObject);
    expect(testObject.rejected).to.eql('reject value');
  });
}

 

 

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google+

You are commenting using your Google+ account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s