我正在测试一个简单组件的渲染。下面给出的是组件和测试规范的源代码。
App.js
import React from 'react';
export const App = () => {
return (<div data-testid="application">Hello World</div>);
}
App.spec.js
import React from 'react';
import { cleanup, render } from '@testing-library/react';
import { App } from '../App';
beforeEach(cleanup); /* Clean the DOM */
describe('<App />', () => {
test('Render the application', () => {
const { queryByTestId } = render(<App />);
expect(queryByTestId('application')).toBeTruthy();
});
});
npm test --coverage
时,没有问题。npm test -- --coverage
时,出现以下错误yarn test --coverage
时,出现以下错误错误
FAIL src/__tests__/App.spec.js
<App />
✕ Render the application (28ms)
● <App /> › Render the application
App(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.
7 | describe('<App />', () => {
8 | test('Render the application', () => {
> 9 | const { queryByTestId } = render(<App />);
| ^
10 | expect(queryByTestId('application')).toBeTruthy();
11 | });
12 | });
at reconcileChildFibers (node_modules/react-dom/cjs/react-dom.development.js:14348:23)
at reconcileChildren (node_modules/react-dom/cjs/react-dom.development.js:16762:28)
at mountIndeterminateComponent (node_modules/react-dom/cjs/react-dom.development.js:17542:5)
at beginWork (node_modules/react-dom/cjs/react-dom.development.js:18596:16)
at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:188:14)
at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:237:16)
at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:292:31)
at beginWork$1 (node_modules/react-dom/cjs/react-dom.development.js:23203:7)
at performUnitOfWork (node_modules/react-dom/cjs/react-dom.development.js:22157:12)
at workLoopSync (node_modules/react-dom/cjs/react-dom.development.js:22130:22)
at performSyncWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:21756:9)
at scheduleUpdateOnFiber (node_modules/react-dom/cjs/react-dom.development.js:21188:7)
at updateContainer (node_modules/react-dom/cjs/react-dom.development.js:24373:3)
at node_modules/react-dom/cjs/react-dom.development.js:24758:7
at unbatchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:21903:12)
at legacyRenderSubtreeIntoContainer (node_modules/react-dom/cjs/react-dom.development.js:24757:5)
at Object.render (node_modules/react-dom/cjs/react-dom.development.js:24840:10)
at node_modules/@testing-library/react/dist/pure.js:86:25
at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:21856:12)
at act (node_modules/react-dom/cjs/react-dom-test-utils.development.js:929:14)
at render (node_modules/@testing-library/react/dist/pure.js:82:26)
at Object.<anonymous> (src/__tests__/App.spec.js:9:31)
答案 0 :(得分:3)
如果禁用whatchAll
,则测试不会失败,因此可以正确呈现。
只需使用:
npm test --coverage --watchAll=false
答案 1 :(得分:0)
我不得不将react-scripts从3.4.3版本降级到3.4.0