做两个如下的测试,来对Promise进行测试,然而却得不到想要的效果
代码如下
var assert = require('assert');
describe('test', function() {
describe("promise", function() {
it("promise test", function() {
Promise.resolve("OK").then(function(value) {
assert.equal(value, "!dsadfasdfOKx"); //这里明显是应该直接抛出断言错误
}, function(err) {
assert.ok(!err);
});
});
// 这个我按照mocha的官方对Promise 的测试说明http://mochajs.org/#working-with-promises
// 然而却抛出TypeError: Cannot read property 'eventually' of undefined的错误
it("promise test2", function() {
return Promise.resolve("OK").should.eventually.equal("OK");
});
})
});
求解。
究竟 对于Promise的测试 该如何写?
官网写的已经非常非常清楚了啊
Alternately, instead of using the done() callback, you may return a Promise. This is useful if the APIs you are testing return promises instead of taking callbacks
对应你的第一个case,应当 return a Promise
it("promise test", function() {
return Promise.resolve("OK").then(function(value) {
assert.equal(value, "!dsadfasdfOKx"); //这里明显是应该直接抛出断言错误
}, function(err) {
assert.ok(!err);
});
});
下面那句话
(The latter example uses Chai as Promised for fluent promise assertions.)
对应你后面的抄官方的case,依赖Chai as Promised