【发布时间】: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