Nestjs Nest.JS单元测试中的ClassSerializedInterceptor

Nestjs Nest.JS单元测试中的ClassSerializedInterceptor,nestjs,Nestjs,在测试Nest.JS控制器时是否可以使用ClassSerializedInterceptor 我们的问题是ClassSerializedInterceptor作为应用程序的一部分可以正常工作,但当控制器作为单元测试的一部分实例化时,它不会运行。我尝试提供ClassSerializeInterdeptor作为测试模块的一部分,但没有成功 示例代码: 试验 作为请求流的一部分测试拦截器只能在e2e和部分集成测试中完成。您需要将一个supertest实例设置为并发送请求,以确保ClassSeriali

在测试Nest.JS控制器时是否可以使用ClassSerializedInterceptor

我们的问题是ClassSerializedInterceptor作为应用程序的一部分可以正常工作,但当控制器作为单元测试的一部分实例化时,它不会运行。我尝试提供ClassSerializeInterdeptor作为测试模块的一部分,但没有成功

示例代码:

试验


作为请求流的一部分测试拦截器只能在e2e和部分集成测试中完成。您需要将一个
supertest
实例设置为并发送请求,以确保
ClassSerializeInterceptor
按预期运行

describe('AppController', () => {
  let appController: AppController;

  beforeEach(async () => {
    const app: TestingModule = await Test.createTestingModule({
      controllers: [AppController],
      providers: [AppService,  ClassSerializerInterceptor],
    }).compile();

    appController = app.get<AppController>(AppController);
  });

  describe('root',  () => {
    it('should not expose exlcuded fields"', async  () => {

      // expect(appController.getHello()).toBe('Hello World!');

      const s = await appController.getHello();

      expect(s).toHaveProperty('shouldBeIncluded');
      expect(s).not.toHaveProperty('shouldBeRemoved');

    });
  });
});
@ObjectType()
@Entity()
export class TestEntity {

  @Field(type => ID)
  @PrimaryGeneratedColumn('uuid')
  shouldBeIncluded: string;

  @Column({ nullable: true })
  @Exclude()
  shouldBeRemoved: string;
}