【发布时间】:2020-10-28 17:46:04
【问题描述】:
我正在使用 supertest 测试AuthenticationController。为此,我使用与我在主文件main.ts 中使用的配置相同的配置来模拟我的应用程序:
// authentication.controller.ts
describe("The AuthenticationController", () => {
let app: INestApplication;
beforeEach(async () => {
userData = {
...mockedUser,
};
const userRepository = {
create: jest.fn().mockResolvedValue(userData),
save: jest.fn().mockReturnValue(Promise.resolve()),
};
const module = await Test.createTestingModule({
controllers: [...],
providers: [...],
}).compile();
app = module.createNestApplication();
app.useGlobalPipes(new ValidationPipe());
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
await app.init();
});
});
这主要是可行的,但是每当我测试一个不应该返回密码或 id 的控制器时 - 因为实体定义中的 @Exclude() 装饰器 - 测试仍然会将它返回给我。
在 Postman 上手动测试端点仍然可以正常工作。
有谁知道是什么导致了这个问题?
【问题讨论】:
标签: javascript typescript nestjs supertest