在玩笑中解决循环依赖

Solving circular dependency in jest

我的应用程序中有一些循环依赖项。它不影响生产,应用程序运行正常。但是现在我开始使用 jest 编写单元测试,现在我的一些导入 returns undefined。因此,我无法编写单个测试。

即使我尝试渲染整个应用程序,导入中也有一些未定义的内容。

我无法删除这些循环依赖,因为这会花费很多时间。

我该如何处理?

以下是 Jest 给出的一些错误示例

TypeError: Cannot read properties of undefined (reading 'sensorTypeRenderer')

      4 | import { Renderers, ColumnDescriptionGenerators } from '@components';
    > 6 | import sensorTypeRenderer = Renderers.sensorTypeRenderer;

找不到这里的服务,因为EventsGroupsStore未定义

ServiceNotFoundError: Service with "<UNKNOWN_IDENTIFIER>" identifier was not found...

    > 204 |                 return Container.get(EventsGroupsStore);

问题不在于循环依赖。我刚刚错误地配置了别名。

应该是这样的:

    moduleNameMapper: {
        "^@src(.*)": "<rootDir>/src",
        "^@tests(.*)": "<rootDir>/tests",
        "^@data(.*)": "<rootDir>/tests/mockData",
        "^@domain(.*)": "<rootDir>/src/domain",
        "^@service(.*)": "<rootDir>/src/service",
        "^@utils(.*)": "<rootDir>/src/utils",
        "^@view(.*)": "<rootDir>/src/view",
        "^.+\.(css|scss)$": "<rootDir>/tests/styleMock.js",
        "^@resources": "<rootDir>/tests/styleMock.js",
        "^@components(.*)": "<rootDir>/src/components",
    },

我只是没有添加这些 (.*)