Как использовать обещание, используя мокко и чай - PullRequest
0 голосов
/ 06 октября 2019

Во-первых, я сделал фиктивные данные.

interface Student {
  id: number;
  name: string;
  age: number;
}

const students: Student[] = [
  {
    id: 3,
    name: 'Sean Grey',
    age: 24
  },
  {
    id: 2,
    name: 'Sllllean Grey',
    age: 224
  },
  {
    id: 3,
    name: 'Seansdajfklajs Grey',
    age: 2114
  }
];

export default students;

Во-вторых, это API моего контроллера на nodejs.

import express from 'express';
import students from '../../dummy/students';

class StudentController {
  static getAllStudents(req: express.Request, res: express.Response) {
    return res.status(200).json({
      students,
      message: 'All the students'
    });
  }
}

export default StudentController;

Наконец, я сделал тестовый кодкак ниже, используя mocha и chai на nodejs.

import chai from 'chai';
import chaiHttp from 'chai-http';
import chaiAsPromised from 'chai-as-promised';
import Index from '../index';

chai.use(chaiHttp);
chai.use(chaiAsPromised);
chai.should();

describe('Students', () => {
  describe('GET /', () => {
    it('Should get all students record', done => {
      chai
        .request(Index)
        .get('/')
        .end((err, res) => {
          return Promise.all([
            res.should.have.status(200),
            res.body.should.be.a('object'),
            done()
          ]);
        });
    });
  })
})

Но когда я запускаю весь этот код, он выдает мне сообщение «Ошибка: превышено время ожидания 2000 мс. Для асинхронных тестов и перехватов убедитесь, что вызывается« done () »; если возвращаете Promise,убедитесь, что это решает ".
Я не знаю, как решить эту проблему. Не могли бы вы порекомендовать несколько советов? Большое спасибо за чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...