javascript - 错误:循环依赖 - NestJS 测试
问题描述
当我创建我的控制器的测试时,我收到以下错误:
检测到循环依赖。请确保双向关系的每一边都用“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?您可能没有使用模拟或名称错误。
推荐阅读
- ios - coremlc:错误:编译器错误:generic_reshape_kernel:无效的底部形状(64 8 -2 1 1)重塑为(4096 -1 1 1 1)
- java - java - 当元素重复时,如何根据另一个数组对一个数组进行排序?
- xamarin.forms - Guage 控件落后于其他控件
- javascript - 添加数组的连续元素
- flutter - 来自自己的流的每个项目的颤振块产量
- javascript - 无法使用 discord.js 获取带有 giphy 的 gif,制作机器人
- azure - Stop-AzureRmWebApp - 查找 Dll
- python - 在 Python 中使用 Pandas 清理我的数据
- python-3.x - 刚切换到 TensorFlow 2.1 并收到一些烦人的警告
- swift - 检索自定义类时 NSKeyedUnarchiver 返回 nil