【发布时间】:2020-12-13 01:19:16
【问题描述】:
我已经设置了一个 MongooseConfigService 以允许我们为某些请求动态切换连接字符串,并尝试正确设置测试。
@Injectable({scope: Scope.REQUEST})
export class MongooseConfigService implements MongooseOptionsFactory {
constructor(
@Inject(REQUEST) private readonly request: Request) {
}
但是,我无法将 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);
});
据我所知,在没有inject 和有/没有useValue 的情况下尝试过,但是在尝试运行测试时this.request 仍然未定义。
TIA
【问题讨论】:
-
@JayMcDoniel,是的,但是有 5 行代码并且没有关于如何实际使用的明显上下文,它并没有走得太远。
标签: nestjs nestjs-testing