Я искал в Интернете какое-то время, и мне еще предстоит найти ответ на этот вопрос.Единичные тесты: Тестирование внутреннего обещания
Допустим, мы тестируем следующее:
function p() {
return Promise.resolve(1);
}
class Sample {
constructor() {
this.stuff = 2;
}
sample() {
p().then((data) => {
this.stuff = data;
});
//more stuff
}
}
module.exports = {Sample};
Как мы могли убедиться, что, в конце концов this.stuff
заполняется без возвращения сказал обещание?
Это то, что я не был в состоянии сделать до сих пор:
let expect = require('chai').expect;
let sinon = require('sinon');
let Sample = require('./source.js').Sample;
describe('stuff', function() {
it('test2', function() {
let sample = new Sample();
return Promise.resolve(sample.sample())
.then(() => {
expect(sample.stuff).to.be.eql(2);
});
});
});
В которой каждый then
получает следующий тик (если мы имели несколько then
с в нашей выборке мы также должны множественным then
с в нашем тесте).
(И прежде чем вы говорите process.nextTick
, я хочу, чтобы это запустить в браузере с кармой-мокко)
Спасибо заранее!
Вы смотрели на chai-as-обещали? – kenhowardpdx
@kenhowardpdx Я сделал, но если бы я правильно понял, это сработало бы, если бы у меня было внутреннее обещание. Но, читая документацию по chai-as-обещанному, возможно, дал мне идею. – Atekon