Во-первых, я сделал фиктивные данные.
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,убедитесь, что это решает ".
Я не знаю, как решить эту проблему. Не могли бы вы порекомендовать несколько советов? Большое спасибо за чтение.