我试图为https://github.com/visionmedia/supertest添加一些便捷方法。到目前为止,我能够做到的唯一方法是将它们直接添加到lib / test.js中的模块源代码中:
render json: @job.as_json(include: {:tasks, promo: {only: :title} }), status: 200
我尝试过util.inherits和prototype .__ proto__但是每次尝试都以&#34结束; expectHeaders不是函数"异常。
这是我最近的尝试:
Test.prototype.expectHeaders = function (a)
{
for (var header in a)
{
this._asserts.push(this._assertHeader.bind(this,
{
name: '' + header,
value: a[header]
}));
}
return this;
};
如何正确添加测试原型的方法?
答案 0 :(得分:0)
如果你想从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;
答案 1 :(得分:0)
好的,这段代码应该会有所帮助。
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;
}