Node.js 网络应用测试与誓言和托比
我是node.js测试的新手,也许你可以帮我: 我想使用vows和tobi为我的express webapp做一些或多或少的简单测试(例如测试登录路径是否有效) 我明白了:Node.js 网络应用测试与誓言和托比,node.js,express,vows,Node.js,Express,Vows,我是node.js测试的新手,也许你可以帮我: 我想使用vows和tobi为我的express webapp做一些或多或少的简单测试(例如测试登录路径是否有效) 我明白了: ♢ mytest GET / ✗ has the right title » expected { '0': { _ownerDocument: [....lots of stuff, won't paste it all.....] Entity: [Function
♢ 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);
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);
誓言有点奇怪。如果回调函数中有一个参数,并在第一个参数中调用它,它会认为这是一个错误,并告诉您有错误。如果您有多个错误,它会认为您希望自己处理错误,而不会抛出错误。试着在原始代码的开头添加一个额外的err参数。这并没有被wivers很好地记录下来,我不太确定它是如何工作的。这只是您在使用它时遇到的问题。在开头添加err参数也会引发错误:“TypeError:undefined不是函数”。六羟甲基三聚氰胺六甲醚。。。也许您有关于测试节点模块的建议?我需要来自zombie或tobi(.submit、.fill等)的客户端功能,因此与这两种功能中的一种配合良好的功能将非常好。另外,一份好的文档也不错。。我认为大多数nodejs测试模块都缺乏良好的文档。要么是这样,要么是因为我编程能力差。你可以试着打印出
参数来看看你得到了什么。至于测试模块,我更喜欢。它比vows灵活得多,它是主动维护的,通过异步函数共享变量也容易得多。vows有点奇怪。如果回调函数中有一个参数,并在第一个参数中调用它,它会认为这是一个错误,并告诉您有错误。如果您有多个错误,它会认为您希望自己处理错误,而不会抛出错误。试着在原始代码的开头添加一个额外的err参数。这并没有被wivers很好地记录下来,我不太确定它是如何工作的。这只是您在使用它时遇到的问题。在开头添加err参数也会引发错误:“TypeError:undefined不是函数”。六羟甲基三聚氰胺六甲醚。。。也许您有关于测试节点模块的建议?我需要来自zombie或tobi(.submit、.fill等)的客户端功能,因此与这两种功能中的一种配合良好的功能将非常好。另外,一份好的文档也不错。。我认为大多数nodejs测试模块都缺乏良好的文档。要么是这样,要么是因为我编程能力差。你可以试着打印出参数来看看你得到了什么。至于测试模块,我更喜欢。它比vows灵活得多,它是主动维护的,因此通过异步函数共享变量要容易得多。