HTTP 테스트---supertest

2622 단어 node.js
머리말
4.567914.개발 을 하면 4.567914.관련 테스트 를 만 날 수 있 습 니 다.보통 모듈 에 의존 해 야 합 니 다.4.567914.또는 4.567914.,4.567914.후자 에 의존 해 야 합 니 다.
The motivation with this module is to provide a high-level abstraction for testing HTTP。
먼저 소개 부터 말하자면nodejsHTTP 테스트 추상 인 터 페 이 스 를 제공한다.본질 적 으로 인터페이스 에 직접 HTTP 요청 을 하고 결 과 를 분석 한 다음 에 결 과 를 대상 으로 한다HTTP참고 문서
  • https://github.com/visionmedia/superagent
  • https://github.com/visionmedia/supertest

  • 미들웨어 테스트 예제-bodyparse.json
    4.567914 의 작가 테스트 사례 는 나의 최초의 사고 와 차이 가 있 지만 더욱 간결 하 다.원작 자 는 중간 부품 을supertest리 셋 함수 에서 직접 사용 하 는데 이때 의 세 개의 매개 변 수 는 실제 사용 할 때superagent로 제어 하 는데 이것 은 현식 성명 이다.
    function createServer(opts){
      var _bodyParser = bodyParser.json(opts)
      return http.createServer(function(req, res){
        _bodyParser(req, res, function(err){
          res.statusCode = err ? (err.status || 500) : 200;
          res.end(err ? err.message : JSON.stringify(req.body));
        })
      })
    }
    
    var http = require('http');
    var request = require('supertest');
    var bodyParser = require('..');
    
    describe('bodyParser.json()', function(){
      it('should parse JSON', function(done){
        var server = createServer({ limit: '1mb' })
        request(server)
        .post('/')
        .set('Content-Type', 'application/json')
        .send('{"user":"tobi"}')
        .expect(200, '{"user":"tobi"}', done)
      })
    

    개인 적 으로 미들웨어 는 입 출력 만 잘 하면 된다 고 생각 하기 때문에 저 는 테스트 할 때 4.567914 를 도 입 했 고 4.567914.경로 에서 미들웨어 를 호출 한 다음 에 응답 함 수 를 추가 하여 4.567914 로 돌 아 왔 습 니 다.이렇게 하면 자신의 스타일 에 더욱 적응 할 수 있다 고 생각 합 니 다.
    var requestAgent = require('supertest');
    var should = require('should');
    var mocha = require('mocha');
    var express = require('express');
    var bodyParser = require('body-parser');
    var app = express();
    app.post('/jsonBodyParse', bodyParser.json(), function(req, res) {
        res.send(req.body);
    });
    var request = requestAgent(app);
    
    describe('reverse flower', function() {
        it('post path /jsonBodyParse', function(done) {
            request
                .post('/jsonBodyParse')
                .type('application/json')
                .send('{"name":"jason"}')
                .expect(200, {"name":"jason"})
                .end(function(err) {
                    done(err);
                });
        });
    });
    

    후기
    HTTP 테스트 의존 모듈 은 복잡 하지 않 으 며,접촉 한 지 얼마 되 지 않 아 비정 기적 으로 이 글 을 업데이트 합 니 다.

    좋은 웹페이지 즐겨찾기