Ответ 1
Jasmine-node позволяет легко использовать жасмин с node.js. На их сайте есть несколько примеров. Другой пример можно найти из http://blog.drewolson.org/post/14684497867/
Я изучаю Node.js и Express framework. Я большой поклонник жасмина. Поэтому я хочу использовать жасмин всякий раз, когда могу, но не могу найти хороший способ тестирования Express с жасмином. Например, как проверить маршрут в app.js?
Если у меня есть этот маршрут в app.js:
app.get('/', function(req, res) {
...
});
Как я могу использовать жасмин для его проверки?
Jasmine-node позволяет легко использовать жасмин с node.js. На их сайте есть несколько примеров. Другой пример можно найти из http://blog.drewolson.org/post/14684497867/
Вам следует попробовать http://frisbyjs.com/
У меня не было возможности использовать его, но поскольку я искал решение той же проблемы, это было лучшее, что я мог найти.
Так как Жасмин 2 очень просто использовать Жасмин в среде Node.js. Чтобы протестировать express приложения, я рекомендую использовать Jasmine в сочетании с supertest.
Вот как выглядит такой тест:
Проект/спецификации/ServerSpec.json
const request = require('supertest');
const app = require('../app');
describe('Server', () => {
describe('REST API v1', () => {
it('returns a JSON payload', (done) => {
request(app)
.get('/rest/service/v1/categories')
.expect(200)
.expect('Content-Type', 'application/json; charset=utf-8')
.end((error) => (error) ? done.fail(error) : done());
});
});
});
Некоторые предварительные условия:
npm i -D [email protected]
npm i -D [email protected]
jasmine init
(Примечание. Сначала вам нужно установить Jasmine глобально, если вы еще не сделали этого, чтобы запустить эту команду)ServerSpec.js
)Вот как выглядит конфигурация Jasmine:
Проект/спецификации/поддержка/jasmine.json
{
"helpers": [
"helpers/**/*.js"
],
"random": false,
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"stopSpecOnExpectationFailure": false
}
Чтобы запустить ваши спецификации (тестовые сеты), просто добавьте это в npm scripts и выполните npm test
(или просто npm t
)
"scripts": {
"test": "jasmine"
},
Вы можете использовать supertest с жасмином, но вам просто нужно вручную пройти ошибки. Об этом недавно была выпущена проблема с проектом GitHub.
Вы можете попробовать использовать supertest-as-обещанное с Jasmine. Он работает для меня: https://github.com/WhoopInc/supertest-as-promised
Вот несколько примеров:
Возможно, вы могли бы попробовать supertest с mocha.
Вот простой пример:
var request = require('supertest')
, express = require('express');
var app = express();
app.get('/user', function(req, res){
res.send(200, { name: 'toto' });
});
describe('GET /user', function(){
it('should respond with json', function(done){
request(app)
.get('/user')
.set('Accept', 'application/json')
.expect('Content-Type', 'json')
.expect(200, done);
})
})