【问题标题】:nestjsx-automapper profiles not found in nestjs test modules在nestjs测试模块中找不到nestjsx-automapper配置文件
【发布时间】:2021-12-23 00:25:57
【问题描述】:

我正在尝试对我的 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');
    });
  });
});

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

提前致谢。

【问题讨论】:

    标签: testing jestjs automapper nestjs


    【解决方案1】:

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

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

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

    moduleRef.get(AutomapperModule).onModuleInit();
    

    【讨论】:

      猜你喜欢
      • 2020-06-22
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 2021-08-12
      • 1970-01-01
      相关资源
      最近更新 更多