Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node.js中编写测试驱动编程?_Javascript_Node.js_Routes_Express_Serverside Javascript - Fatal编程技术网

Javascript 如何在node.js中编写测试驱动编程?

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请

最近我被介绍到node.js和像express、mongodb和ejs这样的包。我有几个问题:

作为学习目的,我创建了一个使用express、mongodb和ejs的应用程序。我所有的函数都在文件中。我需要编写所有这些函数的测试用例。如何用这个例子创建测试驱动的编程

在我的
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
如何更正此错误?