Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
Node.js 使用Mocha for NodeJS的测试表单数据_Node.js_Testing_Mocha.js_Superagent - Fatal编程技术网

Node.js 使用Mocha for NodeJS的测试表单数据

Node.js 使用Mocha for NodeJS的测试表单数据,node.js,testing,mocha.js,superagent,Node.js,Testing,Mocha.js,Superagent,我正在尝试为nodejs编写一个mocha测试,它发送表单数据并检查响应是否正常(200),res.body有一些属性,但是测试失败了,我不知道原因。增加timout没有帮助,当我使用AdvancedRESTclient chrome扩展和有效负载部分的表单数据时,它工作得非常好!.type('form')应该是超级代理语法 var should = require('should'), assert = require('assert'), request = require(

我正在尝试为nodejs编写一个mocha测试,它发送表单数据并检查响应是否正常(200),res.body有一些属性,但是测试失败了,我不知道原因。增加timout没有帮助,当我使用AdvancedRESTclient chrome扩展和有效负载部分的表单数据时,它工作得非常好!
.type('form')
应该是超级代理语法

var should = require('should'),
    assert = require('assert'),
    request = require('supertest'),
    superagent = require('superagent');

        describe('Data', function () {

            it('should return status OK (200)', function(done) {
                this.timeout(20000);
                request.post('http://xxx:3000/xxx/xxx')
                    .type('form')
                    .send({startDate:"2015-03-08",endDate:"2015-03-24",timeLapse:"day"})
                    .end(function(err, res) {
                        if (err) {
                            throw err;
                        }
                        assert.ok(res);
                        assert.ok(res.body);
                        assert.equal(res.status, 200);
                        res.body.should.have.property('trial');
                        done();
            });
        });
错误是:

TypeError: undefined is not a function
        at Context.<anonymous> (C:\Users\user\WebstormProjects\StatsTest\test\getMostRecentData.js:112:17)
        at Test.Runnable.run (C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runnable.js:233:15)
        at Runner.runTest (C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:387:10)
        at C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:470:12
        at next (C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:312:14)
        at C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:322:7
        at next (C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:257:23)
        at Immediate._onImmediate (C:\Users\user\AppData\Roaming\npm\node_modules\mocha\lib\runner.js:289:5)
        at processImmediate [as _immediateCallback] (timers.js:358:17)
TypeError:未定义不是函数
在上下文中。(C:\Users\user\webstoreprojects\StatsTest\test\getMostRecentData.js:112:17)
在Test.Runnable.run(C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\Runnable.js:233:15)
在Runner.runTest(C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\Runner.js:387:10)
在C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\runner.js:470:12
下一步(C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\runner.js:312:14)
在C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\runner.js:322:7
下一步(C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\runner.js:257:23)
立即。立即(C:\Users\user\AppData\Roaming\npm\node\u modules\mocha\lib\runner.js:289:5)
在processImmediate[as_immediateCallback](timers.js:358:17)
试试这个:

var should = require('should'),
    assert = require('assert'),
    request = require('supertest')('http://xxx:3000'),
    superagent = require('superagent');

        describe('Data', function () {

            it('should return status OK (200)', function(done) {

                request.post('/xxx/xxx')
                    .type('form')
                    .send({startDate:"2015-03-08",endDate:"2015-03-24",timeLapse:"day"})
                    .end(function(err, res) {
                        if (err) {
                            throw err;
                        }
                        assert.ok(res);
                        assert.ok(res.body);
                        assert.equal(res.status, 200);
                        res.body.should.have.property('trial');
                        done();
            });
        });

成功了!谢谢为什么
request=require('supertest')('http://xxx:3000“),
行必须包括
(”http://xxx:3000)
?不客气,您可以阅读
supertest
的文档了解更多信息。