我试图在我的locomotive.js应用程序上编写测试,从互联网上的一些示例中复制/粘贴代码。即便如此,每当我运行测试时,我都会收到错误消息
TypeError: string is not a function
当我检查locomotive.boot预期的参数数量(使用locomotive.boot.length)时,它会显示2 ...但是在每个在线示例中(继续,google)文档似乎都说3。有谁知道我做错了什么?
这是我的代码:
var locomotive = require('locomotive'),
should = require('should'),
request = require('supertest');
var app, server;
describe('Application', function() {
before(function(done) {
locomotive.boot( __dirname+"/..", "test", function(err, express) {
if (err) throw err;
app = this;
express.listen(4000, '0.0.0.0', function() {
var addr = this.address();
console.log('Server started. [Env: '+SOPS.conf.get('app:environment')+'] [Addr: '+addr.address+'] [Port: '+addr.port+']');
done();
});
server = express;
});
});
it('should have started the app', function(){
should.exist(app);
should.exist(express);
});
});
答案 0 :(得分:1)
LocomotiveJS回购有2个分支: - 0.3.x(https://github.com/jaredhanson/locomotive/tree/0.3.x) - 主人(https://github.com/jaredhanson/locomotive/tree/master)
如果您使用的是版本0.3.x,您的代码应该可以使用,函数声明实际上显示了4个参数:dir,env,options,callback 你可以看一下这里的函数定义(Locomotive.prototype.boot):0.3.x / lib / locomotive / index.js
从版本0.4.x(分支主机)开始,引导函数只接受2个参数:env,callback 这个分支的函数定义在这里(Application.prototype.boot):master / lib / application.js
因此您的代码应该类似于:
locomotive.boot( "test", *yourcallback* );
希望这有帮助。