Экспресс-тест, возвращающий «Ошибка: ответ не завершен» при переходе к статическому файлу - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь настроить простой проект, используя 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.Спасибо!

1 Ответ

2 голосов
/ 05 января 2012

Вы не экспортируете app из вашего app.js файла

Добавьте это в конец

module.exports = app;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...