2016-05-04 19 views
2
const chaiAsPromised = require('chai-as-promised'); 
const chai = require('chai'); 
const expect = chai.expect; 
chai.use(chaiAsPromised); 

describe('[sample unit]', function() { 
    it('should pass functionToTest with true input', function() { 
    expect(Promise.resolve({ foo: "bar" })).to.eventually.have.property("meh"); 
    }); 
}); 

Dieser Test besteht? Ich verwende "Chai": "3.5.0", "Chai-as-Versprochen": "5.2.0",Chai-As-Promise geht auch wenn es falsch ist

Antwort

3

expect(...) gibt ein Versprechen selbst zurück, das je nach Test entweder aufgelöst oder zurückgewiesen wird.

Für Mocha das Ergebnis dieses Versprechen zu testen, müssen Sie explizit aus dem Testfall zurück (dies funktioniert, weil Mokka verfügt über eine integrierte in versprechen Unterstützung):

describe('[sample unit]', function() { 
    it('should pass functionToTest with true input', function() { 
    return expect(Promise.resolve({ foo: "bar" })).to.eventually.have.property("meh"); 
    }); 
}); 

Alternativ können Sie Mocha die Nutzung "Standard" Callback-Stil Async-Setup und Chai-as-Versprochen ist .notify():

describe('[sample unit]', function() { 
    it('should pass functionToTest with true input', function(done) { 
    expect(Promise.resolve({ foo: "bar" })).to.eventually.have.property("meh").notify(done); 
    }); 
});