JavaScript ਡਿਵੈਲਪਰਾਂ ਲਈ Jest ਟੈਸਟਿੰਗ ਗਾਈਡ
ਟੈਸਟਿੰਗ ਤੁਹਾਨੂੰ ਸ਼ੁਰੂਆਤੀ ਪੜਾਅ ਵਿੱਚ ਬੱਗ (bugs) ਲੱਭਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ। ਇਹ ਕੋਡ ਦੀ ਗੁਣਵੱਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦੀ ਹੈ। ਇਹ ਤੁਹਾਨੂੰ ਪੁਰਾਣੇ ਕੋਡ ਨੂੰ ਖਰਾਬ ਕੀਤੇ ਬਿਨਾਂ ਨਵੇਂ ਫੀਚਰ ਲਾਂਚ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।
Jest, JavaScript ਅਤੇ Node.js ਲਈ ਇੱਕ ਪ੍ਰਸਿੱਧ ਟੈਸਟਿੰਗ ਟੂਲ ਹੈ। ਇਸਨੂੰ Meta ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਇਹ TypeScript, React, Next.js, ਅਤੇ Express.js ਦੇ ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ।
Why use Jest?
- ਇਸ ਲਈ ਬਹੁਤ ਘੱਟ ਸੈੱਟਅੱਪ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
- ਇਹ ਤੇਜ਼ੀ ਲਈ ਟੈਸਟਾਂ ਨੂੰ ਪੈਰਲਲ (parallel) ਚਲਾਉਂਦਾ ਹੈ।
- ਇਸ ਵਿੱਚ ਮੌਕਿੰਗ (mocking) ਟੂਲ ਸ਼ਾਮਲ ਹਨ।
- ਇਹ ਕੋਡ ਕਵਰੇਜ ਰਿਪੋਰਟਾਂ ਦਿਖਾਉਂਦਾ ਹੈ।
- ਇਹ ਸਪਸ਼ਟ ਐਰਰ ਮੈਸੇਜ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
How to set up Jest:
- ਇੱਕ Node.js ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ:
npm init -y - Jest ਇੰਸਟਾਲ ਕਰੋ:
npm install --save-dev jest - "test": "jest" ਸ਼ਾਮਲ ਕਰਨ ਲਈ package.json ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ
npm testਨਾਲ ਟੈਸਟ ਚਲਾਓ:
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: ਮੁੱਲ (values) ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ
expect()ਅਤੇtoBe()ਦੀ ਵਰਤੋਂ ਕਰੋ। - Objects: ਆਬਜੈਕਟਾਂ ਜਾਂ ਐਰੇ (arrays) ਦੀ ਤੁਲਨਾ ਕਰਨ ਲਈ
toEqual()ਦੀ ਵਰਤੋਂ ਕਰੋ। - Organization: ਸਬੰਧਤ ਟੈਸਟਾਂ ਨੂੰ ਸਮੂਹਬੱਧ ਕਰਨ ਲਈ
describe()ਦੀ ਵਰਤੋਂ ਕਰੋ। - Async: Jest
awaitਦੀ ਵਰਤੋਂ ਕਰਕੇ async ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਸੰਭਾਲਦਾ ਹੈ। - Mocks: ਫੰਕਸ਼ਨਾਂ ਦੀ ਨਕਲ (simulate) ਕਰਨ ਲਈ
jest.fn()ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਅਸਲ API ਕਾਲਾਂ ਜਾਂ ਡਾਟਾਬੇਸ ਹਿੱਟਸ ਤੋਂ ਬਚ ਕੇ ਟੈਸਟਾਂ ਨੂੰ ਤੇਜ਼ ਰੱਖਦਾ ਹੈ। - Hooks: ਟੈਸਟ ਡੇਟਾ ਨੂੰ ਸੈੱਟਅੱਪ ਕਰਨ ਜਾਂ ਸਾਫ਼ ਕਰਨ ਲਈ
beforeEach()ਅਤੇafterEach()ਦੀ ਵਰਤੋਂ ਕਰੋ।
Measure your success:
ਆਪਣੀ ਕਵਰੇਜ ਰਿਪੋਰਟ ਦੇਖਣ ਲਈ npx jest --coverage ਚਲਾਓ। ਇਹ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਕੋਡ ਦੇ ਕਿਹੜੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਟੈਸਟਾਂ ਦੀ ਕਮੀ ਹੈ।
Testing APIs:
API ਐਂਡਪੁਆਇੰਟਸ ਦੀ ਟੈਸਟਿੰਗ ਲਈ Supertest ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਸੀਂ ਅਸਲ ਸਰਵਰ ਸ਼ੁਰੂ ਕੀਤੇ ਬਿਨਾਂ ਸਟੇਟਸ ਕੋਡਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ।
Snapshot Testing:
React ਵਿੱਚ matchSnapshot() ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਮੌਜੂਦਾ ਰੈਂਡਰਾਂ ਦੀ ਸੇਵ ਕੀਤੇ ਵਰਜ਼ਨਾਂ ਨਾਲ ਤੁਲਨਾ ਕਰਕੇ ਅਣਪਛਾਤੇ UI ਬਦਲਾਅ ਲੱਭਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦਾ ਹੈ।
Best practices:
- ਅਜਿਹੇ ਟੈਸਟ ਲਿਖੋ ਜੋ ਨਤੀਜਿਆਂ (outcomes) ਦਾ ਵਰਣਨ ਕਰਦੇ ਹੋਣ।
- ਅੰਦਰੂਨੀ ਕੋਡ ਬਣਤਰ (internal code structure) ਦੀ ਟੈਸਟਿੰਗ ਤੋਂ ਬਚੋ।
- ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਅਸਲ ਡਾਟਾਬੇਸ ਤੋਂ ਦੂਰ ਰਹੋ।
- ਅਰਥਪੂਰਨ ਕਵਰੇਜ 'ਤੇ ਧਿਆਨ ਦਿਓ।
Jest ਵਿੱਚ ਮਾਹਰ ਹੋਣਾ ਤੁਹਾਨੂੰ ਭਰੋਸੇਯੋਗ ਸਾਫਟਵੇਅਰ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।