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

问题描述 投票:0回答:1

编辑:这是我早期提出的一个老问题。查看文档可以立即解决这个问题(所以这不应该与任何人相关)。

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

我利用

nestjsx-automapper
。仅在测试使用映射的任何服务时才会发生异常。我用
@nestjs/testing
jest
。 我已经成功地复制了这个测试中的错误:

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');
    });
  });
});

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

提前致谢。

testing jestjs automapper nestjs
1个回答
0
投票

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

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

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

moduleRef.get(AutomapperModule).onModuleInit();
© www.soinside.com 2019 - 2024. All rights reserved.