Извлечение провайдера из TestingModule при использовании интерфейса - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь получить провайдера из модуля тестирования в Nest JS, но не могу разрешить этот модуль при предоставлении его из модуля с помощью интерфейса.

Это то, что у меня есть до сих пор:

const moduleFixture: TestingModule = await Test.createTestingModule({
  imports: [AppModule],
}).compile()

...


const fooService = moduleFixture.get<FooService>(FooService) // Nest could not find FooService element

Когда модуль, экспортирующий FooService, выполняет что-то вроде этого ...

@Global()
@Module({
  providers: [{ provide: 'IFooService', useClass: FooService }],
  exports: [{ provide: 'IFooService', useClass: FooService }],
})
export class FooModule {}

Как я могу получить экземпляр FooService для прямого вызова методов?

1 Ответ

0 голосов
/ 19 февраля 2020

Вам нужно будет указать методу get, чтобы он сделал тот же токен инъекции, который указан в вашем коде. В этом случае

const fooService = moduleFixture.get<FooService>('IFooService');
...