𝗝𝗲𝘀𝘁 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 𝗚𝘂𝗶𝗱𝗲 𝗳𝗼𝗿 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀
Testing ಮಾಡುವುದರಿಂದ ನೀವು ದೋಷಗಳನ್ನು (bugs) ಮೊದಲೇ ಪತ್ತೆಹಚ್ಚಬಹುದು. ಇದು ಕೋಡ್ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಹಳೆಯ ಕೋಡ್ಗೆ ತೊಂದರೆಯಾಗದಂತೆ ಹೊಸ ಫೀಚರ್ಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
Jest ಎಂಬುದು JavaScript ಮತ್ತು Node.js ಗಾಗಿ ಜನಪ್ರಿಯವಾದ testing tool ಆಗಿದೆ. ಇದನ್ನು Meta ಅಭಿವೃದ್ಧಿಪಡಿಸಿದೆ. ಇದು TypeScript, React, Next.js, ಮತ್ತು Express.js ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ.
Why use Jest?
- ಇದಕ್ಕೆ ಕನಿಷ್ಠ setup ಅಗತ್ಯವಿದೆ.
- ವೇಗಕ್ಕಾಗಿ ಇದು tests ಅನ್ನು parallel ಆಗಿ ರನ್ ಮಾಡುತ್ತದೆ.
- ಇದು mocking tools ಅನ್ನು ಒಳಗೊಂಡಿದೆ.
- ಇದು code coverage ವರದಿಗಳನ್ನು ತೋರಿಸುತ್ತದೆ.
- ಇದು ಸ್ಪಷ್ಟವಾದ error messages ನೀಡುತ್ತದೆ.
How to set up Jest:
- Node.js project ರಚಿಸಿ:
npm init -y - Jest ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:
npm install --save-dev jest - "test": "jest" ಅನ್ನು ಸೇರಿಸಲು package.json scripts ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ
npm testಬಳಸಿ tests ರನ್ ಮಾಡಿ
Writing a simple test:
Create sum.js:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Create sum.test.js:
const sum = require("./sum");
test("adds two numbers", () => {
expect(sum(2, 3)).toBe(5);
});
Essential Jest tools:
- Assertions: ಮೌಲ್ಯಗಳನ್ನು ಪರಿಶೀಲಿಸಲು
expect()ಮತ್ತುtoBe()ಬಳಸಿ. - Objects: objects ಅಥವಾ arrays ಗಳನ್ನು ಹೋಲಿಸಲು
toEqual()ಬಳಸಿ. - Organization: ಸಂಬಂಧಿತ tests ಗಳನ್ನು ಗುಂಪು ಮಾಡಲು
describe()ಬಳಸಿ. - Async: Jest
awaitಬಳಸಿ async functions ಗಳನ್ನು ಸಹಜವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ. - Mocks: functions ಗಳನ್ನು ಅನುಕರಿಸಲು (simulate)
jest.fn()ಬಳಸಿ. ಇದು ನೈಜ API calls ಅಥವಾ database hits ತಪ್ಪಿಸುವ ಮೂಲಕ tests ಅನ್ನು ವೇಗವಾಗಿರಿಸುತ್ತದೆ. - Hooks: test data ಅನ್ನು setup ಮಾಡಲು ಅಥವಾ clean up ಮಾಡಲು
beforeEach()ಮತ್ತುafterEach()ಬಳಸಿ.
Measure your success:
ನಿಮ್ಮ coverage ವರದಿಯನ್ನು ನೋಡಲು npx jest --coverage ರನ್ ಮಾಡಿ. ಇದು ನಿಮ್ಮ ಕೋಡ್ನ ಯಾವ ಭಾಗಗಳಲ್ಲಿ tests ಇಲ್ಲ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ.
Testing APIs:
API endpoints ಪರೀಕ್ಷಿಸಲು Supertest ಬಳಸಿ. ನೈಜ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸದೆಯೇ ನೀವು status codes ಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.
Snapshot Testing:
React ನಲ್ಲಿ matchSnapshot() ಬಳಸಿ. ಇದು ಪ್ರಸ್ತುತ renders ಗಳನ್ನು ಉಳಿಸಲಾದ versions ಗಳೊಂದಿಗೆ ಹೋಲಿಸುವ ಮೂಲಕ ಅನಿರೀಕ್ಷಿತ UI ಬದಲಾವಣೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
Best practices:
- ಫಲಿತಾಂಶಗಳನ್ನು ವಿವರಿಸುವ tests ಬರೆಯಿರಿ.
- ಆಂತರಿಕ ಕೋಡ್ ರಚನೆಯನ್ನು (internal code structure) ಪರೀಕ್ಷಿಸುವುದನ್ನು ತಪ್ಪಿಸಿ.
- unit tests ನಲ್ಲಿ ನೈಜ databases ಗಳಿಂದ ದೂರವಿರಿ.
- ಅರ್ಥಪೂರ್ಣ coverage ಮೇಲೆ ಗಮನಹರಿಸಿ.
Jest ನಲ್ಲಿ ಪರಿಣತಿ ಪಡೆಯುವುದು ನೀವು ವಿಶ್ವಾಸಾರ್ಹ ಸಾಫ್ಟ್ವೇರ್ ನಿರ್ಮಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.