У меня есть приложение для реакции с инверсией. js и один из классов использует модуль «среда»
Я пытаюсь использовать шутку, например: получил
Cannot find module 'environment' from 'config.service.ts'
тоже получил.
logger is undefined
в тесте
1. Как я могу протестировать и имитировать класс inversify с помощью Jest
2. как я могу издеваться над другими зависимостями, такими как environment
env module: environment.d.ts в основном возвращает объект с config
declare module 'environment' {
import baseEnv from './environments/base';
const value: ReturnType<typeof baseEnv>;
export default value;
}
, тогда у меня есть класс с iversify js ,
class 1: config service config.service.ts
import { injectable } from 'inversify';
import environment from 'environment';
import { EnvironmentInterface } from '../../environments/base';
import { IConfig } from './config.interface';
@injectable()
export class ConfigService implements IConfig {
public config: EnvironmentInterface;
constructor() {
this.config = environment;
}
get(): EnvironmentInterface {
return this.config;
}
}
Logger Class
@injectable()
export class Logger implements ILogger {
private config: EnvironmentInterface;
static level = LogLevel.DEBUG;
constructor(
@inject(TYPES.ConfigService)
private readonly configService: IConfig
) {
this.config = this.configService.get();
}
debug()
}
, тогда я хотел бы протестировать следующий файл:
export class OptionsService implements IOptions {
@inject(TYPES.Api) private api!: Api;
@inject(TYPES.Logger) private logger!: ILogger;
async getOptions() {
apiService.get....
}
}