Как настроить экспресс с мокко и супертест для интеграционного тестирования?
Я новичок в Node.js, экспресс и супертест, и не могу понять, как настроить базовый тест. Я создал приложение с:
express -H -c less
добавили мокко и супертест в зависимости:
"dependencies": {
"mocha": "*",
"supertest": "*",
"express": "~4.2.0",
"static-favicon": "~1.0.0",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.1",
"body-parser": "~1.0.0",
"debug": "~0.7.4",
"hjs": "~0.0.6",
"less-middleware": "1.0.x"
}
затем написал этот простой тест:
var request = require('supertest')
, express = require('express');
var app = express();
describe('Home page', function() {
it("renders successfully", function(done) {
request(app).get('/').expect(200, done);
})
}
Тест не пройден:
1) Home page renders successfully:
Uncaught TypeError: Cannot call method 'handle' of undefined
at Function.app.handle (/Users/sarahallen/src/exp/test-first-express/node_modules/express/lib/application.js:120:16)
at Server.app (/Users/sarahallen/src/exp/test-first-express/node_modules/express/lib/express.js:28:9)
at Server.emit (events.js:98:17)
at HTTPParser.parser.onIncoming (http.js:2108:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
at Socket.socket.ondata (http.js:1966:22)
at TCP.onread (net.js:527:27)
Версии программного обеспечения:
node -v
v0.10.29
express --version
4.2.0
1 ответ
Решение
Работает следующий код установки - адаптированный из этого учебника: http://tinycandyhammers.com/2012/08/05/nodejs-testing-tutorial.html
var request = require('supertest')
, express = require('express');
var app = require('../app');
describe('Home page', function() {
it("renders successfully", function(done) {
request(app)
.get('/')
.expect(200, done);
})
})
Не уверен, почему предыдущий пример, скопированный из супер-теста README, оказался неверным ( https://github.com/visionmedia/supertest)