Rem*_*uan 10 nestjs nestjs-testing
我已经设置了 MongooseConfigService 来允许我们动态切换某些请求的连接字符串,并尝试正确设置测试。
@Injectable({scope: Scope.REQUEST})
export class MongooseConfigService implements MongooseOptionsFactory {
constructor(
@Inject(REQUEST) private readonly request: Request) {
}
Run Code Online (Sandbox Code Playgroud)
然而,我在提供request测试上下文时遇到了困难。
let service: Promise<MongooseConfigService>;
beforeEach(async () => {
const req = new JestRequest();
const module: TestingModule = await Test.createTestingModule({
providers: [
MongooseConfigService,
{
provide: getModelToken(REQUEST),
inject: [REQUEST],
useFactory: () => ({
request: req,
}),
},
],
}).compile();
service = module.resolve<MongooseConfigService>(MongooseConfigService);
});
Run Code Online (Sandbox Code Playgroud)
据我所知,已经在没有inject和 with/without 的情况下尝试过useValue,但是this.request在尝试运行测试时仍然未定义。
TIA
ada*_*amC 11
也许尝试仅使用 import: [appModule] 实例化测试模块,然后尝试获取服务。另外,尝试使用 overrideprovider 和 usevalue ,如下所示:
let service: Promise<MongooseConfigService>;
beforeEach(async () => {
const req = new JestRequest();
const module: TestingModule = await Test.createTestingModule({
imports: [appModule]
}).overrideProvider(REQUEST)
.useValue(req)
.compile();
service = module.resolve<MongooseConfigService>(MongooseConfigService);
});
Run Code Online (Sandbox Code Playgroud)