gpt4 book ai didi

node.js - 使用 Vows 和 Tobi 进行 Web 应用程序测试

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:56 25 4
gpt4 key购买 nike

我对 Node.js 测试完全陌生,也许你可以帮助我:我想使用誓言和托比为我的 Express Web 应用程序做一些或多或少的简单测试(例如测试登录路由是否有效)

var vows   = require('vows');
var assert = require('assert');
var tobi = require('tobi');

var browser = tobi.createBrowser(8080, 'localhost');

vows.describe('mytest').addBatch({

'GET /': {
topic: function() {

browser.get("/", this.callback);

},
'has the right title': function(res, $) {

$('title').should.equal('MyTitle');

}
}


}).export(module);

我明白了:

♢ mytest

GET /
✗ has the right title
» expected { '0':
{ _ownerDocument:

[....lots of stuff, won't paste it all.....]

Entity: [Function: Entity],
EntityReference: [Function: EntityReference] } },
selector: ' title' } to equal 'MyTitle' // should.js:295

✗ Broken » 1 broken (0.126s)

我无法识别出此输出有什么问题,但我猜测它与回调有关。我对 Node.js 中的异步编程风格也相当陌生。

最佳答案

vows 期望回调的第一个参数是错误。如果它不为空或未定义,则认为出现问题。您必须将回调包装到一个匿名函数中,该函数以 null 作为第一个参数来调用它。

vows.describe('mytest').addBatch({

'GET /': {
topic: function() {
var cb = this.callback;
browser.get("/", function() {
var args = Array.prototype.slice.call(arguments);
cb.apply(null, [null].concat(args));
});

},
'has the right title': function(err, res, $) {

$('title').should.equal('MyTitle');

}
}


}).export(module);

关于node.js - 使用 Vows 和 Tobi 进行 Web 应用程序测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8796666/

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