【问题标题】:how do I set up express with mocha and supertest for integration testing?如何使用 mocha 和 supertest 设置 express 进行集成测试?
【发布时间】:2014-08-14 04:38:44
【问题描述】:

我是 Node.js 的新手,我是 express 和 supertest,但不知道如何设置基本测试。我创建了一个应用程序:

express -H -c less

在依赖项中添加了 mocha 和 supertest:

"dependencies": {
  "mocha": "*",
  "supertest": "*",
  "express": "~4.2.0",
  "static-favicon": "~1.0.0",
  "morgan": "~1.0.0",
  "cookie-parser": "~1.0.1",
  "body-parser": "~1.0.0",
  "debug": "~0.7.4",
  "hjs": "~0.0.6",
  "less-middleware": "1.0.x"
}

然后写了这个简单的测试:

var request = require('supertest')
, express = require('express');

var app = express();

describe('Home page', function() {
  it("renders successfully", function(done) {
    request(app).get('/').expect(200, done);    
  })
}

测试失败:

1) Home page renders successfully:
  Uncaught TypeError: Cannot call method 'handle' of undefined
    at Function.app.handle (/Users/sarahallen/src/exp/test-first-express/node_modules/express/lib/application.js:120:16)
    at Server.app (/Users/sarahallen/src/exp/test-first-express/node_modules/express/lib/express.js:28:9)
    at Server.emit (events.js:98:17)
    at HTTPParser.parser.onIncoming (http.js:2108:12)
    at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:121:23)
    at Socket.socket.ondata (http.js:1966:22)
    at TCP.onread (net.js:527:27)

软件版本:

node -v
v0.10.29

express --version
4.2.0

【问题讨论】:

    标签: express bdd mocha.js supertest


    【解决方案1】:

    以下设置代码有效——改编自本教程:http://tinycandyhammers.com/2012/08/05/nodejs-testing-tutorial.html

    var request = require('supertest')
      , express = require('express');
    
    var app = require('../app');
    
    describe('Home page', function() {
      it("renders successfully", function(done) {
        request(app)
          .get('/')
          .expect(200, done);    
      })
    })
    

    不知道为什么从 supertest README 复制的上一个示例不正确 (https://github.com/visionmedia/supertest)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 2015-06-02
      • 2013-10-26
      • 2021-08-15
      • 2023-04-09
      • 2013-01-23
      相关资源
      最近更新 更多