我在下面写了一个非常简单的异步承诺链:
"use strict";
var Q = require("q");
describe('foobar', function() {
it('should do async add', function() {
return Q.fcall(function () {
return "a";
})
.then(function (obj) {
return obj + "a";
})
.then(function (obj) {
return obj + "a";
})
.then(function (obj) {
expect(obj).toEqual("aaa");
})
});
});
但是当我运行“jasmine-node mytest_spec”时,我得到了:
完成0.004秒1次测试,1次断言,0次失败,0次跳过
我犯了什么错误?我该如何解决这个问题?
答案 0 :(得分:0)
我读了Jasmine 1.3和2.0 doc,我只是错过了一点...... Jasmine-node和protractor都使用了Jasmine 1.3,我以为它应该是2.0 ......
所以正确的工作代码应该是:
runs(function () {
flag = false;
return Q.fcall(function () {
console.log("first");
return "a";
})
.then(function (obj) {
console.log("second");
return obj + "a";
})
.then(function (obj) {
console.log("third");
return obj + "a";
})
.then(function (obj) {
value = obj;
flag = true;
});
});
waitsFor(function() {
return flag;
}, "The Value should be incremented", 50);
runs(function() {
expect(value).toEqual("aaa");
});