موچا اور چائی کا استعمال کرتے ہوئے ایک بنیادی ٹیسٹ بنانا
موچا اور چائی کا استعمال کرتے ہوئے ایک بنیادی ٹیسٹ بنانے کے لیے، آپ ان اقدامات پر عمل کر سکتے ہیں:
1. Mocha اور Chai انسٹال کریں: اپنے Node.js پروجیکٹ میں Mocha اور Chai کو انسٹال کرنے کے لیے npm (Node Package Manager) کا استعمال کریں۔ اپنی پروجیکٹ ڈائرکٹری میں درج ذیل کمانڈ کو چلائیں:
npm install mocha chai --save-dev
2. ایک ٹیسٹ فائل بنائیں: ایک نئی فائل بنائیں، مثال کے طور پر test.js، اور Mocha اور Chai کو استعمال کرنے کے لیے درج ذیل اعلانات درآمد کریں:
const chai = require('chai');
const expect = chai.expect;
describe('Example Test Suite', () => {
it('should pass the test', () => {
expect(2 + 2).to.equal(4);
});
});
3. ٹیسٹ چلائیں: ٹرمینل کھولیں اور mocha ٹیسٹوں کو انجام دینے کے لیے کمانڈ چلائیں۔ اگر سب کچھ آسانی سے چلتا ہے، تو آپ ٹرمینل میں دکھائے گئے نتائج دیکھیں گے۔
یہ بنیادی ٹیسٹ ایک سادہ حساب کو چیک کرنے کے لیے Mocha اور Chai کا استعمال کرتا ہے۔ اوپر کی مثال میں، ہم چیک کرتے ہیں کہ 2 + 2آپریشن کا نتیجہ برابر ہونا چاہیے 4۔ اگر نتیجہ درست ہے تو امتحان پاس ہو جائے گا۔
جوڑ کر describe اور it بلاک کر کے، آپ مزید پیچیدہ ٹیسٹ بنا سکتے ہیں اور اپنے سورس کوڈ کے مختلف حصوں کو چیک کر سکتے ہیں۔
نوٹ کریں کہ آپ Chai کی طرف سے فراہم کردہ دیگر دعوے کے طریقے بھی استعمال کر سکتے ہیں، جیسے assert یا should، جانچ کے لیے۔ مخصوص استعمال آپ کی پسند پر منحصر ہے اور آپ اپنے ٹیسٹ کوڈ کو کس طرح ترتیب دینا چاہتے ہیں۔
فنکشن کے نتائج کی تصدیق کے لیے دعوے اور استفسارات کا استعمال
ٹیسٹنگ کے لیے Mocha اور Chai استعمال کرتے وقت، آپ افعال کے نتائج کو چیک کرنے کے لیے دعوے اور سوالات کا استعمال کر سکتے ہیں۔ فنکشن کے نتائج کو چیک کرنے کے لیے دعوے اور سوالات کے استعمال کی کچھ مثالیں یہ ہیں:
1. کسی فنکشن کا نتیجہ چیک کرنے کے لیے expectدعویٰ اور استفسار کا استعمال کریں جو ایک مخصوص قدر لوٹاتا ہے:to.equal
const result = myFunction();
expect(result).to.equal(expectedValue);
2. بولین ویلیو واپس کرنے والے فنکشن کے نتیجے کو چیک کرنے کے لیے 'expect' دعوی اور to.be.trueیا استفسار کا استعمال کریں: to.be.false
const result = myFunction();
expect(result).to.be.true; // or expect(result).to.be.false;
to.be.null3. کسی فنکشن کے نتیجے کو چیک کرنے کے لیے 'expect' دعویٰ اور or to.be.undefined استفسار کا استعمال کریں جو ایک کالعدم یا غیر متعینہ قدر لوٹاتا ہے:
const result = myFunction();
expect(result).to.be.null; // or expect(result).to.be.undefined;
4. یہ چیک کرنے کے لیے expectدعویٰ اور to.includeاستفسار کا استعمال کریں کہ آیا کوئی قدر کسی صف یا سٹرنگ میں شامل ہے:
const result = myFunction();
expect(result).to.include(expectedValue);
5. کسی صف یا سٹرنگ کی لمبائی کو چیک کرنے کے لیے expectدعویٰ اور استفسار کا استعمال کریں:to.have.lengthOf
const result = myFunction();
expect(result).to.have.lengthOf(expectedLength);
یہ مثالیں فنکشن کے نتائج کو چیک کرنے کے لیے Mocha اور Chai میں دعوے اور استفسارات کو استعمال کرنے کے بہت سے طریقوں میں سے چند ہیں۔ آپ اپنے پروجیکٹ کی جانچ کی ضروریات کی بنیاد پر مناسب دعووں اور استفسارات کو اپنی مرضی کے مطابق اور استعمال کر سکتے ہیں۔
کامیاب اور ناکام ٹیسٹ کیسز بنانا
Mocha اور Chai کے ساتھ ٹیسٹ کیس لکھتے وقت، کامیاب اور ناکامی دونوں منظرناموں کا احاطہ کرنا ضروری ہے۔ یہاں کامیاب اور ناکامی دونوں منظرناموں کے لیے ٹیسٹ کیسز بنانے کی مثالیں ہیں:
1. کامیاب ٹیسٹ کیس:
describe('myFunction', () => {
it('should return the expected result', () => {
// Arrange
const input = // provide the input for the function
const expected = // define the expected result
// Act
const result = myFunction(input);
// Assert
expect(result).to.equal(expected);
});
});
2. ناکامی ٹیسٹ کیس:
describe('myFunction', () => {
it('should throw an error when invalid input is provided', () => {
// Arrange
const invalidInput = // provide invalid input for the function
// Act and Assert
expect(() => myFunction(invalidInput)).to.throw(Error);
});
});
کامیاب ٹیسٹ کیس میں، آپ فنکشن اور متوقع نتیجہ کے لیے ان پٹ کی وضاحت کرتے ہیں۔ اس کے بعد، آپ ان پٹ کے ساتھ فنکشن کو کال کرتے ہیں اور دعوی کرتے ہیں کہ نتیجہ متوقع قدر سے میل کھاتا ہے۔
ناکامی کے ٹیسٹ کی صورت میں، آپ فنکشن کو غلط ان پٹ فراہم کرتے ہیں اور اس بات پر زور دیتے ہیں کہ اس سے غلطی ہوتی ہے۔ یہ یقینی بناتا ہے کہ فنکشن غلط ان پٹ یا خرابی کے حالات کو صحیح طریقے سے ہینڈل کرتا ہے۔
اپنے ٹیسٹ کیسز میں کامیاب اور ناکامی دونوں منظرناموں کا احاطہ کرکے، آپ اس بات کو یقینی بنا سکتے ہیں کہ آپ کے کوڈ کی اچھی طرح جانچ کی گئی ہے اور مختلف حالات کو مناسب طریقے سے ہینڈل کرتا ہے۔