Javascript 如何向nodejs supertest模块添加方法?
我正试图给它添加一些方便的方法。到目前为止,我能够做到这一点的唯一方法是将它们直接添加到lib/test.js中的模块源代码中:Javascript 如何向nodejs supertest模块添加方法?,javascript,node.js,supertest,Javascript,Node.js,Supertest,我正试图给它添加一些方便的方法。到目前为止,我能够做到这一点的唯一方法是将它们直接添加到lib/test.js中的模块源代码中: Test.prototype.expectHeaders = function (a) { for (var header in a) { this._asserts.push(this._assertHeader.bind(this, { name: '' + header, value: a[header]
Test.prototype.expectHeaders = function (a)
{
for (var header in a)
{
this._asserts.push(this._assertHeader.bind(this,
{
name: '' + header,
value: a[header]
}));
}
return this;
};
我尝试了通过util.inherits和prototype。但是每次尝试都以“expectHeaders不是函数”异常结束
以下是我的最新尝试:
var supertest = require('supertest'),
util = require('util');
var SccTest = function()
{
};
SccTest.prototype.__proto__ = supertest.prototype;
SccTest.expectHeaders = function (a)
{
for (var header in a)
{
this._asserts.push(this._assertHeader.bind(this,
{
name: '' + header,
value: a[header]
}));
}
return this;
};
util.inherits(SccTest, supertest);
module.exports = SccTest;
如何正确地将方法添加到测试原型中?如果希望从supertest对象继承,则不需要手动将原型指向supertest。您只需调用util.inherites方法:
var supertest = require('supertest'),
util = require('util');
var SccTest = function(){
};
util.inherits(SccTest, supertest);
SccTest.prototype.expectHeaders = function (a){
...
};
module.exports = SccTest;
好的,这段代码应该会有帮助
var supertest = require('supertest'),
util = require('util');
var SccTest=function (arguments) {
var sccTest = {}
sccTest.__proto__ = supertest(arguments)
sccTest.expectHeaders = function (a)
{
for (var header in a)
{
this._asserts.push(this._assertHeader.bind(this,
{
name: '' + header,
value: a[header]
}));
}
return this;
};
return sccTest;
}
不起作用。我做了scctest=require('./scctest');scctest(”;throws无法读取未定义的属性“get”