在 nestjs 测试模块中找不到 nestjsx-automapper 配置文件

nestjsx-automapper profiles not found in nestjs test modules

我正在尝试对 NestJS 中的某些功能进行单元测试 API。

我利用nestjsx-automapper。只有在测试任何使用映射的服务时才会发生异常。我使用 @nestjs/testingjest。 我已经设法在这个测试中复制错误:

describe('UserController', () => {
  let userServiceInterface: UserServiceInterface;

  beforeEach(async () => {
    const app: TestingModule = await Test.createTestingModule({
      imports: [AutomapperModule.withMapper('user')],
      providers: [
        {
          provide: 'UserServiceInterface',
          useClass: UserService,
        },
      ],
    }).compile();

    userServiceInterface = app.get<UserServiceInterface>(
      'UserServiceInterface',
    );
  });

  describe('find', () => {
    it(`should return user with name 'pipo'`, () => {
      const user = userServiceInterface.find('pipo');
      expect(user.username).toBe('pipo');
    });
  });
});

我一直在寻找配置配置文件的不同方法,但导入它们是我找到的唯一方法。

提前致谢。

我弄清楚了 nestjsx-automapper 是如何加载配置文件的。 由于您不能在模块中提供配置文件,因此您依赖于应用程序首先运行配置文件,它由 nestjsx-automapper 的 AutomapperModule 处理。

我不知道为什么嵌套模块会加载 AutomapperModule 并因此加载配置文件,但测试模块不会,我将不得不更多地使用 nest 来理解它。

要告诉测试模块在初始化时加载 AutomapperModule(默认情况下它们不会加载),请使用:

moduleRef.get(AutomapperModule).onModuleInit();