𝗝𝗲𝘀𝘁 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 𝗚𝘂𝗶𝗱𝗲 𝗳𝗼𝗿 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿𝘀
ടെസ്റ്റിംഗ് നേരത്തെ തന്നെ ബഗുകൾ കണ്ടെത്താൻ നിങ്ങളെ സഹായിക്കുന്നു. ഇത് കോഡിന്റെ ഗുണനിലവാരം മെച്ചപ്പെടുത്തുന്നു. പഴയ കോഡുകൾ തകരാറിലാക്കാതെ തന്നെ പുതിയ ഫീച്ചറുകൾ പുറത്തിറക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.
JavaScript, Node.js എന്നിവയ്ക്കായുള്ള പ്രശസ്തമായ ഒരു ടെസ്റ്റിംഗ് ടൂളാണ് Jest. Meta ആണ് ഇത് നിർമ്മിച്ചത്. ഇത് TypeScript, React, Next.js, Express.js എന്നിവയ്ക്കൊപ്പം പ്രവർത്തിക്കുന്നു.
എന്തുകൊണ്ട് Jest ഉപയോഗിക്കണം?
- ഇതിന് വളരെ കുറഞ്ഞ സെറ്റപ്പ് മാത്രമേ ആവശ്യമുള്ളൂ.
- വേഗതയ്ക്കായി ഇത് ടെസ്റ്റുകൾ പാരലൽ ആയി പ്രവർത്തിപ്പിക്കുന്നു.
- ഇതിൽ മോക്കിംഗ് ടൂളുകൾ (mocking tools) ഉൾപ്പെടുന്നു.
- ഇത് കോഡ് കവറേജ് റിപ്പോർട്ടുകൾ കാണിക്കുന്നു.
- ഇത് വ്യക്തമായ എറർ മെസ്സേജുകൾ നൽകുന്നു.
Jest എങ്ങനെ സെറ്റപ്പ് ചെയ്യാം:
- ഒരു Node.js പ്രോജക്റ്റ് നിർമ്മിക്കുക:
npm init -y - Jest ഇൻസ്റ്റാൾ ചെയ്യുക:
npm install --save-dev jest - "test": "jest" ഉൾപ്പെടുത്തുന്നതിനായി package.json സ്ക്രിപ്റ്റുകൾ അപ്ഡേറ്റ് ചെയ്യുക
npm testഉപയോഗിച്ച് ടെസ്റ്റുകൾ റൺ ചെയ്യുക
ഒരു ലളിതമായ ടെസ്റ്റ് എഴുതുന്ന രീതി:
sum.js നിർമ്മിക്കുക:
function sum(a, b) {
return a + b;
}
module.exports = sum;
sum.test.js നിർമ്മിക്കുക:
const sum = require("./sum");
test("adds two numbers", () => {
expect(sum(2, 3)).toBe(5);
});
പ്രധാനപ്പെട്ട Jest ടൂളുകൾ:
- Assertions: വാല്യൂസ് പരിശോധിക്കാൻ
expect()ഉംtoBe()ഉം ഉപയോഗിക്കുക. - Objects: ഒബ്ജക്റ്റുകളോ അറേകളോ താരതമ്യം ചെയ്യാൻ
toEqual()ഉപയോഗിക്കുക. - Organization: ബന്ധപ്പെട്ട ടെസ്റ്റുകളെ ഗ്രൂപ്പ് ചെയ്യാൻ
describe()ഉപയോഗിക്കുക. - Async:
awaitഉപയോഗിച്ച് Jest അസിങ്ക് ഫംഗ്ഷനുകളെ സ്വാഭാവികമായി കൈകാര്യം ചെയ്യുന്നു. - Mocks: ഫംഗ്ഷനുകളെ സിമുലേറ്റ് ചെയ്യാൻ
jest.fn()ഉപയോഗിക്കുക. യഥാർത്ഥ API കോളുകളോ ഡാറ്റാബേസ് കണക്ഷനുകളോ ഒഴിവാക്കുന്നതിലൂടെ ഇത് ടെസ്റ്റുകൾ വേഗത്തിലാക്കുന്നു. - Hooks: ടെസ്റ്റ് ഡാറ്റ സെറ്റപ്പ് ചെയ്യാനോ ക്ലീൻ അപ്പ് ചെയ്യാനോ
beforeEach()ഉംafterEach()ഉം ഉപയോഗിക്കുക.
നിങ്ങളുടെ വിജയം അളക്കുക:
നിങ്ങളുടെ കവറേജ് റിപ്പോർട്ട് കാണാൻ npx jest --coverage റൺ ചെയ്യുക. നിങ്ങളുടെ കോഡിന്റെ ഏതെല്ലാം ഭാഗങ്ങളിലാണ് ടെസ്റ്റുകൾ കുറവുള്ളതെന്ന് ഇത് കാണിച്ചുതരുന്നു.
API ടെസ്റ്റ് ചെയ്യൽ:
API എൻഡ്പോയിന്റുകൾ ടെസ്റ്റ് ചെയ്യാൻ Supertest ഉപയോഗിക്കുക. ഒരു യഥാർത്ഥ സെർവർ സ്റ്റാർട്ട് ചെയ്യാതെ തന്നെ നിങ്ങൾക്ക് സ്റ്റാറ്റസ് കോഡുകൾ പരിശോധിക്കാം.
Snapshot Testing:
React-ൽ matchSnapshot() ഉപയോഗിക്കുക. നിലവിലെ റെൻഡറുകളെ സേവ് ചെയ്ത പതിപ്പുകളുമായി താരതമ്യം ചെയ്യുന്നതിലൂടെ അപ്രതീക്ഷിതമായ UI മാറ്റങ്ങൾ കണ്ടെത്താൻ ഇത് നിങ്ങളെ സഹായിക്കുന്നു.
മികച്ച രീതികൾ:
- ഫലങ്ങളെ (outcomes) വിവരിക്കുന്ന രീതിയിൽ ടെസ്റ്റുകൾ എഴുതുക.
- കോഡിന്റെ ആന്തരിക ഘടന (internal code structure) ടെസ്റ്റ് ചെയ്യുന്നത് ഒഴിവാക്കുക.
- യൂണിറ്റ് ടെസ്റ്റുകളിൽ യഥാർത്ഥ ഡാറ്റാബേസുകളിൽ നിന്ന് വിട്ടുനിൽക്കുക.
- അർത്ഥവത്തായ കവറേജിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുക.
Jest മാസ്റ്റർ ചെയ്യുന്നത് വിശ്വസനീയമായ സോഫ്റ്റ്വെയറുകൾ നിർമ്മിക്കാൻ നിങ്ങളെ സഹായിക്കും.