我在新环境中遇到问题
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
的每个测试都能正常运行
就我而言,
jest fake timers
是罪魁祸首
// jest-setup.js
jest.useFakeTimers(); // remove this line