#typescript #jestjs #nestjs
Вопрос:
тест.контроллер.ts
import { Controller, Get, Res } from '@nestjs/common';
@Controller('test')
export class TestController {
@Get()
check(@Res() response) {
response.status(200).send();
}
}
test.controller.spec.ts
import { Test, TestingModule } from '@nestjs/testing';
import { TestController } from './test.controller';
describe('TestController', () => {
let controller: TestController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [TestController],
}).compile();
controller = module.get<TestController>(TestController);
});
describe('check', () => {
it('should return status 200', async () => {
const result = 'test'
expect(await controller.check()).toBe(result);
});
)
});
Текущий код выглядит так.
Я хочу статус 200, но я не знаю, как ожидать результата в этом случае.
Ответ №1:
Во-первых, проще вернуть код ответа «способом NestJS».:
@Get()
@HttpCode(200)
check(@Res() response) {
// My Result
}
В ходе тестирования Вы можете ожидать цепочки :
expect(200).expect(...MoreChecks)
Или в быстром:
expect(result.statusCode).toEqual(200)
Но есть намного больше выражений, отличающихся от Fastify
Пожалуйста, Обратитесь К : https://docs.nestjs.com/fundamentals/testing
Комментарии:
1. Спасибо! Если я добавлю
@HttpCode(200)
, мне это не нужноresponse.status(200).send();
?2. @Бери Да, тебе это не нужно
3. Я понял, спасибо. Итак, что еще я должен написать?
4. @Возьми Извини, чего ты хочешь больше ? или что ты собираешься делать ?
5. Извините. Я просто хочу вернуть статус 200. Так что же мне написать вместо
response.status(200).send();
этого ?