use*_*490 23 node.js express jasmine
我正在学习Node.js和Express框架.我是茉莉花的忠实粉丝.所以我想尽可能地使用茉莉花,但是,我找不到用茉莉花测试Express的好方法.例如,我应该如何测试app.js中的路由?
如果我在app.js中有这条路线:
app.get('/', function(req, res) {
...
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能用茉莉花来测试呢?
Jasmine-node使用node.js轻松使用jasmine.他们的网站上有一些例子.另一示例可以从找到http://blog.drewolson.org/post/14684497867/ web.archive.org
从 Jasmine 2 开始,在 Node.js 环境中使用 Jasmine 非常简单。要使用它测试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());
});
});
});
Run Code Online (Sandbox Code Playgroud)
一些先决条件:
npm i -D jasmine@2npm i -D supertest@3jasmine init(注意:如果您还没有运行此命令,则需要先全局安装 Jasmine)ServerSpec.js)下面是 Jasmine 配置的样子:
项目/规范/支持/茉莉花.json
{
"helpers": [
"helpers/**/*.js"
],
"random": false,
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"stopSpecOnExpectationFailure": false
}
Run Code Online (Sandbox Code Playgroud)
要运行您的规范(测试套件),只需将其添加到您的npm 脚本并执行npm test(或仅执行npm t):
"scripts": {
"test": "jasmine"
},
Run Code Online (Sandbox Code Playgroud)