“异步”测试永远运行开玩笑

问题描述 投票:0回答:1

我在新环境中遇到问题

async
用笑话进行测试

    "jest": "^27.4.6",
    "babel-jest": "^27.4.6",
    "react": "17.0.1",
"jest": {
    "preset": "react-native",
    "setupFiles": [
      "<rootDir>/jest/setup.js"
    ],
    "setupFilesAfterEnv": [
      "@testing-library/jest-native/extend-expect"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!(@react-native|react-native|react-native-android-location-enabler|react-native-config|react-native-actionsheet|@sentry/react-native|reselect|redux-persist)/)"
    ],
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx",
      "json",
      "node"
    ]
  },

情况是,事件试图运行有史以来最简单的测试,开玩笑,但实际上从未执行它:

const giveMeAfterSec = () => {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve('wow');
        }, 1000);
    });
};

describe('dummy', () => {
    test('async test', async () => {
        const result = await giveMeAfterSec();

        expect(result).toBe('wow');
    });
});

并尝试运行它,我看到永无止境

RUNS src/__tests__/dummy.test.tsx

没有

async await
的每个测试都能正常运行

react-native asynchronous jestjs
1个回答
0
投票

就我而言,

jest fake timers
是罪魁祸首

// jest-setup.js
jest.useFakeTimers(); // remove this line
© www.soinside.com 2019 - 2024. All rights reserved.