- npm create vite@latest
- cd ; code . ; npm install ; npm run dev
- clear up / simplify App component
- npm install --save-dev
- vitest
- @testing-library/react
- @testing-library/jest-dom
- happy-dom
Note: happy-dom is a JS implementation of a web browser without its graphical user interface.
- add test script in package.json
"test":"vitest"
-
add setupTests.js
import { afterEach } from 'vitest'; import { cleanup } from '@testing-library/react'; import matchers from '@testing-library/jest-dom/matchers'; // extends Vitest's expect method with methods from react-testing-library expect.extend(matchers); // runs a cleanup after each test case (e.g. clearing happy-dom) afterEach(() => { cleanup(); });
-
add test object in vite.config.js
test: { globals: true, environment: 'happy-dom', setupFiles: './setupTests.js', reporters: 'verbose' }```
-
create a test file e.g. App.test.jsx
-
a non-render test example
describe
test suitetest
orit
test caseexpect
assertion
- npm run test
- more non-render test examples
- some render test examples
- import render, screen
- render()
- screen.debug()
- screen.getByText()
- screen.getByRole()
- screen.queryByText()
- fireEvent()