gpt4 book ai didi

javascript - Node Mocha Chai Async - 即使它应该失败,一切都会通过

转载 作者:行者123 更新时间:2023-11-30 08:02:03 27 4
gpt4 key购买 nike

我试图自学使用测试框架来自动执行测试,而不必手动进行。经过一些反复试验,我终于让单元测试开始通过了……但是现在,我的问题是无论是否应该,一切都在通过。

目前我有以下代码:

describe('create {authName, authPW}', function() {
it('no name', function() {
init({
path: ':memory:',
callback: function() {
var arg;
arg = {};
//arg['authName'] = 'Name';
arg['authPW'] = 'Pass';
arg['callback'] = function(r) {
// r.should.equal('create error');
r.should.equal('foobar');
done();
};
create(arg);
}
});
});
});

如您所料... r 不应等于 'foobar'

我在这里做错了什么?

最佳答案

当使用 mocha 创建异步测试时,你需要让他知道它何时完成

describe('an asynch piece of code', function() {
var foo = new bar();
it('should call the callback with a result', function( done ) {
foo.doAsynchStuff( function( result ) {
result.should.be.ok;
done();
});
});
});

如果 done 作为参数出现在 it 上,那么 mocha 将等待 done 被调用。它有 2 秒的超时时间,如果超过则测试失败。您可以增加此超时:

it('should resolve in less than 10 seconds', function( done ) {
this.timeout( 10000 );
foo.doAsynchStuff( function( result ) {
result.should.be.ok;
done();
});
}

关于javascript - Node Mocha Chai Async - 即使它应该失败,一切都会通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25530992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com