Javascript 如何在node.js中编写测试驱动编程?
最近我被介绍到node.js和像express、mongodb和ejs这样的包。我有几个问题: 作为学习目的,我创建了一个使用express、mongodb和ejs的应用程序。我所有的函数都在文件中。我需要编写所有这些函数的测试用例。如何用这个例子创建测试驱动的编程 在我的Javascript 如何在node.js中编写测试驱动编程?,javascript,node.js,routes,express,serverside-javascript,Javascript,Node.js,Routes,Express,Serverside Javascript,最近我被介绍到node.js和像express、mongodb和ejs这样的包。我有几个问题: 作为学习目的,我创建了一个使用express、mongodb和ejs的应用程序。我所有的函数都在文件中。我需要编写所有这些函数的测试用例。如何用这个例子创建测试驱动的编程 在我的app.js文件中 app.get('/login', user.login); app.post('/login', user.loginSubmit); 我需要编写不同的路由来登录页面呈现和提交等。如果还有一些ajax请
app.js
文件中
app.get('/login', user.login);
app.post('/login', user.loginSubmit);
我需要编写不同的路由来登录页面呈现和提交等。如果还有一些ajax请求,那么在考虑单个页面的路由时,app.js
文件中有很多路由。是这样还是需要改变我的结构 我向你推荐,它来自expressjs的同一个人。
它支持代码的测试覆盖率,每个代码之前、之后都有挂钩,当然它还支持异步代码
我将它与should.js甚至chai.js结合使用
mocha中的一个测试看起来像是,代码来自我自己的测试,我使用superagent来发出请求
it('requests a permission with valid ticket', function (done){
agent
.post(route.server + '/preq')
.set('Content-Type', 'application/json')
.set('Authorization', 'Bearer ' + ACCESSTOKEN)
.send({ticket: TICKET})
.end(function (req,res) {
res.should.have.property('statusCode').that.equals(201);
var location = .....
res.headers.should.have.property('location').that.is.equal(location);
done();
});
})
express不是与测试捆绑在一起吗?您可以查看repo,看看是否有一些测试实用程序可以使用或回收。@mpm如何在express中运行测试?在快速测试中,有一些函数
描述
,测试
等。从哪里我们可以找到这些功能的文档和用法?寻找摩卡或茉莉花,但我猜express creator使用的是摩卡,因为他也创建了它。你可以试试吗?你能展示一个摩卡与我的功能集成的例子吗?我已经通过npm install mocha
安装了mocha
,并创建了一个文件test/test.js
。我已经将所有代码从gist复制到test.js
中,并尝试在root中使用命令make test
,但在shell中收到一条消息,名为make:note to do to do for`test.
当以root用户身份输入与test
文件夹相同的命令时,会给出另一条消息make:**没有规则来生成目标`test'。停止。
我们如何运行测试文件?您可以从Makefile或npm scripts变量执行,但最简单的方法是mocha test/-R spec
我已将gist示例中的post(route.signup)更改为post(route.registerUser)。var route=require(“../routes/users”)已定义。每次我都会收到一个错误,因为3个测试中有1个测试失败:1)测试用户“在所有之前”钩子:错误:在null处超过2000ms的超时。(/home/justin/www/NodeUserManagement/node_modules/mocha/lib/runnable.js:167:14)在Timer.list.ontimeout(timers.js:100:19)进程中。_makeCallback(node.js:248:20)make:**[test]错误1
如何更正此错误?