Я использую express.js версию 2.5.8 (из устаревшего кода), и я хочу проверить загрузку маршрута с помощью супертеста. У меня проблема с запущенным сервером, но не прерывается. Я запускаю свои тесты, используя jasmine-node
, что указывает на то, что мое утверждение прошло успешно. Однако консоль показывает, что процесс все еще запущен.Совместим с express.js 2.5.8?
var request = require('supertest')
, express = require('express');
describe('Example Test', function() {
var app;
beforeEach(function() {
app = express.createServer();
app.configure(function() {
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
});
app.get('/', function(req, res){
res.send(200);
});
});
it('index should return 200', function(done) {
request(app)
.get('/')
.expect(200)
.end(function(err, res) {
expect(err).toBe(null);
done();
});
});
});
Этот пример адаптирован для использования с использованием express.js 3.x.x. Мое предположение заключается в том, что экспресс-сервер ведет себя по-разному, что приводит к тому, что он не закрывается, когда запрос завершается внутри теста. Я не знаю, как исправить эту проблему.
Благодарим, @zeMirco. Я мог бы поклясться, что уже пробовал это решение. На самом деле у меня было 'app.close()' там в какой-то момент. Хотя, должно быть, он не был в правильном месте. – jneander