Error: Circular dependency - NestJS Testing

Error: Circular dependency - NestJS Testing

当我创建控制器测试时出现以下错误:

A circular dependency has been detected. Please make sure that each side of a bidirectional relationship is decorated with "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();

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