Я пытаюсь настроить простой проект, используя Node.js и Express с Expresso для тестирования.Я использую промежуточное программное обеспечение express.static для обслуживания статического html-файла (index.html), расположенного в моем общедоступном каталоге.Это код для app.js:
var express = require('express');
var app = express.createServer();
// Configuration
app.configure(function() {
app.use(express.staticCache());
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
});
app.listen(3000);
Затем я написал простой тест для проверки статического файла.Это код для app.test.js:
var app = require('../app')
, assert = require('assert');
module.exports = {
'Navigate to root': function() {
assert.response(
app,
{
url: '/'
},
{
status: 200,
headers: { 'Content-Type': 'text/html; charset=utf8'}
},
function(res) {
assert.includes(res.body, 'index');
assert.ok(res);
}
);
}
};
Когда я запускаю тест (используя expresso или expresso -s), я получаю следующую ошибку:
app.test.js Navigate to root: TypeError: Object #<Object> has no method 'listen'
at Function.response (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:424:16)
at Test.fn (/home/bill/projects/bidkat.app/test/app.test.js:13:11)
at Test.runParallel (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:959:10)
at Test.run (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:924:18)
at next (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:867:22)
at runSuite (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:875:6)
at check (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:814:12)
at runFile (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:819:6)
at Array.forEach (native)
at runFiles (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:796:15)
app.test.js Navigate to root: Error: Response not completed: Navigate to root.
at Function.response (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:400:17)
at Test.fn (/home/bill/projects/bidkat.app/test/app.test.js:13:11)
at Test.runParallel (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:959:10)
at Test.run (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:924:18)
at next (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:867:22)
at runSuite (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:875:6)
at check (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:814:12)
at runFile (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:819:6)
at Array.forEach (native)
at runFiles (/home/bill/local/node/lib/node_modules/expresso/bin/expresso:796:15)
I 'Я, очевидно, делаю что-то глупое, но я не могу понять, что это такое.Я думал, что это может быть потому, что мой сервер уже запущен до теста, но похоже, что Expresso справляется с этим делом.Я также протестировал конечную точку REST, используя json, чтобы выяснить, не был ли это статический файл, вызывающий проблему, но он выдает мне ту же ошибку..5.4 и Expresso v0.9.2.Спасибо!