Я пытаюсь создать модульные тесты для моего небольшого приложения.Я хочу протестировать службу, которая использует внедренные конфигурации, и другие службы.
@Injectable()
export class AuthService {
private readonly localUri: string;
constructor(
@Inject(CORE_CONFIG_TOKEN) private readonly coreConfig: ICoreConfig,
@Inject(PROVIDER_CONFIG_TOKEN) private readonly providerConfig: IProviderConfig,
private readonly _httpService: HttpService,
private readonly _usersService: UsersService,
) {
this.localUri = `http://${this.coreConfig.domain}:${this.coreConfig.port}`;
}
...
/**
* Checks if a given email is already taken
* @param email
*/
async isEmailTaken(email: string): Promise<boolean> {
return (await this._usersService.findUserByEmail(email)) !== undefined;
}
...
Я не понимаю, как проверить эту службу.Я не знаю, как предоставить правильного поставщика TestModule для введенной конфигурации @Inject(CORE_CONFIG_TOKEN) private readonly coreConfig: ICoreConfig
const testCoreConfig = '{...}'
const module = await Test.createTestingModule({
providers: [AuthService, {
provide: 'CORE_CONFIG_TOKEN',
useClass: testCoreConfig ,
}],
}).compile();
Также я не уверен, нужно ли мне создавать другие импортированные сервисы.Я просто хотел бы проверить, если они называются.И если это так, верните ложные данные.Это я могу сделать, но я застрял с настройкой модуля.
Все образцы, которые я нашел до сих пор, где только сервисы с одним хранилищем.И более-менее проверяет, существует ли услуга.Но никаких проверок против логики реализации и связей между классами.
Надеюсь, мой вопрос ясен Спасибо