【问题标题】:Error: Circular dependency - NestJS Testing错误:循环依赖 - NestJS 测试
【发布时间】:2021-10-12 08:48:53
【问题描述】:

当我创建控制器测试时,我收到以下错误:

检测到循环依赖。请确保每个 双向关系的一侧用“forwardRef()”装饰

  // category.service.ts
  constructor(
    @InjectModel(Category.name) private categoryModel: Model<CategoryDocument>,
    private readonly subcategoriesService: SubcategoriesService,
  ) {}


// category.controller.spec.ts
describe('V1CategoriesController', () => {
  let categoriesController: CategoriesController;
  let categoriesService: CategoriesService;

  beforeEach(async () => {
    const moduleRef: TestingModule = await Test.createTestingModule({
      controllers: [CategoriesController],
      providers: [CategoriesService, SubcategoriesService],
    }).compile();

    categoriesController = moduleRef.get<CategoriesController>(
      CategoriesController,
    );
    categoriesService = moduleRef.get<CategoriesService>(CategoriesService);
    jest.clearAllMocks();
  });

  it('CategoriesController - should be defined', () => {
    expect(categoriesController).toBeDefined();
  });
});

我尝试创建一个 SubcategoriesService Mock,但我不确定这样做是否正确

const SubcategoriesService = jest.fn().mockReturnValue({
  findByCategory: jest.fn().mockResolvedValue([]),
});

const moduleRef: TestingModule = await Test.createTestingModule({
      controllers: [CategoriesController],
      providers: [CategoriesService, { provide: 'SubcategoriesService', useFactory: SubcategoriesService },],
    }).compile();

【问题讨论】:

    标签: javascript unit-testing jestjs nestjs


    【解决方案1】:

    对于您的主要服务,您使用的是 Mock? 有可能您没有使用模拟或名称错误。

    【讨论】:

    • 是的,Mock 的名字拼错了。
    猜你喜欢
    • 2021-07-19
    • 2021-01-30
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多