0
我阵列上运行的摩卡测试循环,像这样:运行摩卡测试循环同步
it('each should have permissions defined for each role', function(done) {
async.forEach(_permissions, function(permission, callback) {
log.debug(permission.permissions.should.be.an.instanceOf(Array).and.not.be.empty);
callback(permission.permissions.should.be.an.instanceOf(Array).and.not.be.empty);
},
function(result) {
log.debug(result);
done();
});
});
当我登录出来,看来即使我使用done()
回调异步运行。是这样吗?我的测试是否仍然成功执行,还是仅执行第一个测试,然后返回成功结果?
这里是控制台输出:
[Tue Dec 02 2014 09:24:07 GMT-0800 (PST)] DEBUG { obj: [ 'permissions!' ], params: { operator: 'to be empty' }, negate: false }
✓ each should have permissions defined for each role // <- here's the test result
[Tue Dec 02 2014 09:24:07 GMT-0800 (PST)] DEBUG { obj: [ 'permissions!' ], params: { operator: 'to be empty' }, negate: false }
[Tue Dec 02 2014 09:24:07 GMT-0800 (PST)] DEBUG { obj: [ 'permissions!' ], params: { operator: 'to be empty' }, negate: false }
[Tue Dec 02 2014 09:24:07 GMT-0800 (PST)] DEBUG { obj: [ 'permissions!' ], params: { operator: 'to be empty' }, negate: false }
DOH!真棒;) – brandonscript 2014-12-02 17:37:55
它实际上是'eachSeries'?当我使用它时,现在只有一个测试执行。 – brandonscript 2014-12-02 17:41:17
啊,不得不稍微修改 - 断言需要不在回调中。 – brandonscript 2014-12-02 17:44:59