私は以下の約束をしています。私は彼らが正しく動作していることを知っています.funcThreeのconsole.log出力は正しいデータを返します。テストを通じてこれをどのように証明できますか?チャイの約束の戻り値
基本的に、この約束をテストするにはどうすればよいですか?私は以下のテストを試みましたが、私がそこに置いたもの(expect(false)to.be.trueを含む)に関係なく、常にtrueを返します。私はそれが実際に期待通りの文に達しているとは思わない。あなたが実際にchai-as-promised
を使用するようにチャイを指示する必要があり
CODE
let number = 0;
let count = 0;
// Find Mongoose document
function funcOne(query) {
return new Promise(function (resolve, reject) {
MongooseDocument.find(query)
.exec(function (err, results) {
if (err) {
reject(err);
}
resolve(results);
});
});
}
// Iterate over each document and adjust external value
function funcTwo(documents) {
return new Promise(function (resolve, reject) {
_.each(documents, function (document) {
count += 1;
number += document.otherNumber;
});
if (count >= documents.length) {
resolve({
count,
number,
});
}
});
}
// Chain promises and return result
function funcThree(query) {
return funcOne(query).then(funcTwo).then(function (result) {
console.log("==================");
console.log(result);
return result;
});
}
試験例
// The expect test below never runs! How do I test this promise? Or
// better yet, how do I get the value returned as a result from the
// promise to test that?
it('should return an object', function() {
funcThree(query).then(function(result) {
return expect(result).to.be.an('object');
});
});