微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NestJs测试-REPOSITORY是模块中相关提供商/进口商品的一部分

如何解决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 举报,一经查实,本站将立刻删除。