Тест Мокка не достигает 2-го экспресс-обратного вызова и возвращается к 1-му - PullRequest
0 голосов
/ 12 октября 2018

Мне нужна помощь в приведенном ниже коде.Я тестирую сервис, который отправляет запрос к определенной конечной точке, и мне нужно захватить тело запроса (для этого используется экспресс-узел).Бегун проходит тесты мокко и имеет более одного блока.Когда я отлаживаю тест, первый блок работает так, как ожидалось (утверждение проходит), но когда элемент управления достигает второго блока, после отправки запроса элемент управления снова возвращается к первому блоку, а утверждение во втором блоке никогда не выполняется.достиг.Что я тут не так делаю?

{
    var express = require("express");
    var bodyPaser = require('body-parser');
    var expressObj = new express();
    expressObj.use(bodyPaser.json());

    describe('describe', function () {
        before('describe', function () {
            expressObj.listen(8080);
        });

        it('first It', function (done) {
            expressObj.post('/mytest/first', function (req, res) {
                res.send("Hello");
                //  assert.equal(JSON.stringify(req.body), JSON.stringify('first":test'));
                done();
            });
        });

        it('second it', function (done) {
            expressObj.post('/mytest/first', function (req, res) {
                res.send("Hello");
                //  assert.equal(JSON.stringify(req.body), JSON.stringify('first":test'));
                done();
            });
        });
    });

1 Ответ

0 голосов
/ 13 октября 2018

Первый и второй тесты просто устанавливают маршрут, но вы фактически не отправляете запрос ни на один из описанных вами маршрутов.Итак, тесты начинаются, но первый на самом деле ничего не делает, поэтому никогда не вызывается, поэтому второй тест вообще не запускается.Чтобы протестировать эти маршруты, вам нужно создать запрос для каждого маршрута после их определения.Вот рабочая демонстрация вашего кода:

var express = require("express");
var bodyPaser = require('body-parser');
var expressObj = new express();
expressObj.use(bodyPaser.json());
const request = require('request');

describe('describe', function () {
    before('describe', function (done) {
        expressObj.listen(8080, function(err) {
          if(err) {
            console.error(err);
            done(err);
            return;
          }

          console.log('listening on localhost:8080');
          done();
        });
    });

    it('first It', function (done) {
        expressObj.post('/mytest/first', function (req, res) {
                        res.send("Hello");
            //  assert.equal(JSON.stringify(req.body), JSON.stringify('first":test'));
            done();
        });
        request.post('http://localhost:8080/mytest/first');
    });

    it('second it', function (done) {
        expressObj.post('/mytest/second', function (req, res) {
            res.send("Hello");
            //  assert.equal(JSON.stringify(req.body), JSON.stringify('first":test'));
            done();
        });

        request.post('http://localhost:8080/mytest/second');
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...