如何解决NestJs测试-REPOSITORY是模块中相关提供商/进口商品的一部分
我正在尝试使用nestjs为基于单仓库的应用程序编写单元测试用例。
我遇到以下错误
nest cannot export a provider/module that is not a part of the currently processed module (CacheManagerModule). Please verify whether the exported CACHE_MANAGER_REPOSITORY is available in this particular context.
Possible Solutions:
- Is CACHE_MANAGER_REPOSITORY part of the relevant providers/imports within CacheManagerModule?
使用的软件包如下
"@nestjs/testing": "6.11.7","jest": "25.1.0","ts-jest": "25.0.0"
请参考下面的示例代码
apps \ api \ src \ modules \ enduse \ enduse.controller.spec.ts
import { InestApplication } from "@nestjs/common";
import { Test } from "@nestjs/testing";
import { CacheManagerModule } from "@app/cache-manager";
import * as request from "supertest";
import { EnduseController } from "./enduse.controller";
import { EnduseService } from "./enduse.service";
describe("Enduse",() => {
let app: InestApplication;
beforeAll(async () => {
const module = await Test.createTestingModule({
imports: [CacheManagerModule],controllers: [EnduseController],providers: [EnduseService],}).compile();
app = module.createnestApplication();
await app.init();
});
it("/ (Get Enduse)",async () => {
const response = await request(app.getHttpServer()).get("enduse/mapping?enduse=123").expect(200);
return response;
});
});
libs \ cache-manager \ src \ cache-manager.module.ts
import { Module } from "@nestjs/common";
import { CacheManagerService } from "./cache-manager.service";
import { CacheManagerProviders } from "./cache-manager.provider";
@Module({
providers: [CacheManagerService,...CacheManagerProviders],exports: [CacheManagerService,})
export class CacheManagerModule {}
libs \ cache-manager \ src \ cache-manager.provider.ts
import { Reviewmodel } from "@app/database/models";
import { CACHEMANAGERCONST } from "./cache-manager.const";
export const CacheManagerProviders = [
{
provide: CACHEMANAGERCONST.CACHE_MANAGER_REPOSITORY,useValue: Reviewmodel,},];
jest.config.js
moduleNameMapper: {
"^@app/cache-manager": resolve(__dirname,"./libs/cache-manager/src")
}
如何解决该问题?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。