Mocha اور کے ساتھ ٹیسٹ کو بہتر بنانا اور منظم کرنا Chai

سافٹ ویئر ڈویلپمنٹ کے عمل میں، جانچ کے مرحلے میں درستگی اور کارکردگی کو یقینی بنانے کے لیے ٹیسٹوں کو بہتر بنانا اور منظم کرنا بہت ضروری ہے۔ اس مضمون میں، ہم دریافت کریں گے کہ Node.js کے ساتھ Mocha اور اس میں ٹیسٹ کو کس طرح بہتر اور منظم کیا جائے۔ Chai

ٹیسٹوں کو بہتر بنانے اور ترتیب دینے سے جانچ کے عمل میں بہتری آتی ہے، غلطیاں کم ہوتی ہیں، اور آپ کی درخواست کی بھروسے میں اضافہ ہوتا ہے۔ ان تکنیکوں کو لاگو کرنے سے، آپ اپنے Node.js پروجیکٹ میں ٹیسٹوں کا مؤثر طریقے سے انتظام اور ان پر عمل درآمد کر سکتے Mocha ہیں Chai ۔

 

ٹیسٹ تنظیم:

  • فعالیت کے لحاظ سے ٹیسٹوں کی درجہ بندی: فعالیت کی بنیاد پر ٹیسٹوں کا اہتمام آپ کے پروجیکٹ میں ہر مخصوص خصوصیت کے لیے جانچ کے اہداف کا انتظام اور شناخت کرنا آسان بناتا ہے۔
  • نیسٹڈ بیانات کا استعمال: ٹیسٹوں کو منظم کرنے کے لئے ایک درجہ بندی کی ساخت بنانے کے لئے نیسٹڈ بیانات کا استعمال کریں۔ یہ آپ کے ٹیسٹ سویٹ کے لیے واضح اور پڑھنے کے قابل ڈھانچہ کو برقرار رکھنے میں مدد کرتا ہے۔

 

ٹیسٹ سے پہلے اور بعد میں سیٹ اپ اور ٹیر ڈاون کے کام انجام دینے کے لیے ہکس کا استعمال

  • ہکس کا استعمال: Mocha ہکس فراہم کرتا ہے جیسے کہ before, after, beforeEach, اور afterEach ٹیسٹ سے پہلے اور بعد کے آپریشن کرنے کے لیے۔ ہکس کا استعمال وقت کی بچت اور ٹیسٹوں کی مجموعی کارکردگی کو بہتر بنانے میں مدد کرتا ہے۔
  • استعمال skip اور only ہدایات: skip ہدایت آپ کو ترقی کے دوران غیر ضروری ٹیسٹوں کو چھوڑنے کی اجازت دیتی ہے۔ ہدایت only مخصوص ٹیسٹ چلانے کے قابل بناتی ہے، جو اس وقت مفید ہوتا ہے جب آپ کو کوڈ بیس کے صرف ایک چھوٹے سے حصے کی جانچ کرنے کی ضرورت ہو۔

مثال:

describe('Calculator',() => {  
  beforeEach(() => {  
    // Set up data for all tests within this describe block  
  });  
  
  afterEach(() => {  
    // Clean up after running all tests within this describe block  
  });  
  
  describe('Addition',() => {  
    it('should return the correct sum',() => {  
      // Test addition operation  
    });  
  
    it('should handle negative numbers',() => {  
      // Test addition with negative numbers  
    });  
  });  
  
  describe('Subtraction',() => {  
    it('should return the correct difference',() => {  
      // Test subtraction operation  
    });  
  
    it('should handle subtracting a larger number from a smaller number',() => {  
      // Test subtraction when subtracting a larger number from a smaller number  
    });  
  });  
});  

 

گروپنگ ٹیسٹ اور تنظیم کے لیے وضاحتی بلاکس کا استعمال

ٹیسٹوں کو ایک ساتھ منظم کرنے اور گروپ کرنے کے لیے، ہم describe بلاکس کو ٹیسٹنگ فریم ورک میں استعمال کر سکتے ہیں جیسے Mocha ۔ بلاک describe ہمیں کسی مخصوص موضوع یا مقصد کی بنیاد پر متعلقہ ٹیسٹوں کو گروپ کرنے کی اجازت دیتا ہے۔

describe کسی چیز سے متعلق ٹیسٹوں کو منظم کرنے کے لیے بلاکس کے استعمال کی ایک مثال یہ ہے Calculator:

const { expect } = require('chai');  
  
class Calculator {  
  add(a, b) {  
    return a + b;  
  }  
  
  subtract(a, b) {  
    return a- b;  
  }  
  
  multiply(a, b) {  
    return a * b;  
  }  
  
  divide(a, b) {  
    if(b === 0) {  
      throw new Error('Cannot divide by zero');  
    }  
    return a / b;  
  }  
}  
  
describe('Calculator',() => {  
  let calculator;  
  
  beforeEach(() => {  
    calculator = new Calculator();  
  });  
  
  describe('add()',() => {  
    it('should return the sum of two numbers',() => {  
      const result = calculator.add(5, 3);  
      expect(result).to.equal(8);  
    });  
  });  
  
  describe('subtract()',() => {  
    it('should return the difference of two numbers',() => {  
      const result = calculator.subtract(5, 3);  
      expect(result).to.equal(2);  
    });  
  });  
  
  describe('multiply()',() => {  
    it('should return the product of two numbers',() => {  
      const result = calculator.multiply(5, 3);  
      expect(result).to.equal(15);  
    });  
  });  
  
  describe('divide()',() => {  
    it('should return the quotient of two numbers',() => {  
      const result = calculator.divide(6, 3);  
      expect(result).to.equal(2);  
    });  
  
    it('should throw an error when dividing by zero',() => {  
      expect(() => calculator.divide(6, 0)).to.throw('Cannot divide by zero');  
    });  
  });  
});  

اوپر کی مثال میں، ہم اعتراض describe کے ہر طریقہ سے متعلق گروپ ٹیسٹ کے لیے بلاکس کا استعمال کرتے ہیں۔ Calculator ہم ہر ٹیسٹ کو چلانے سے پہلے beforeEach ایک نئی آبجیکٹ بنانے کے لیے ایک بلاک بھی استعمال کرتے ہیں۔ Calculator

بلاکس کا استعمال کرتے ہوئے describe ، ہم ٹیسٹ کوڈ کو سمجھنا اور منظم کرنے میں آسان بناتے ہوئے، واضح اور منظم انداز میں ٹیسٹوں کو منظم اور گروپ بنا سکتے ہیں۔

 

پلگ انز اور رپورٹرز کے ساتھ ٹیسٹ کے عمل کو حسب ضرورت بنانا

Mocha اور جیسے ٹیسٹنگ فریم ورک استعمال کرتے وقت Chai ، ہم پلگ انز اور رپورٹرز کا استعمال کرکے جانچ کے عمل کو اپنی مرضی کے مطابق بنا سکتے ہیں۔ جانچ کے عمل کو حسب ضرورت بنانے کے لیے پلگ انز اور رپورٹرز کو استعمال کرنے کے طریقے کی کچھ مثالیں یہ ہیں:

  1. Mocha پلگ ان : Mocha اس کی خصوصیات کو بڑھانے کے لیے پلگ ان کے استعمال کی حمایت کرتا ہے۔ مثال کے طور پر، آپ mocha-parallel-tests بیک وقت ٹیسٹ چلانے کے لیے استعمال کر سکتے ہیں، جو عملدرآمد کو تیز کر سکتا ہے۔ آپ اس پلگ ان کو npm کے ذریعے انسٹال کر سکتے ہیں اور پھر اسے اپنی Mocha کنفیگریشن فائل میں استعمال کر سکتے ہیں۔

  2. Chai پلگ ان : Chai اپنی خصوصیات کو بڑھانے کے لیے پلگ ان بھی فراہم کرتا ہے۔ مثال کے طور پر، آپ chai-http اپنے ٹیسٹوں میں HTTP درخواستوں کو جانچنے کے لیے استعمال کر سکتے ہیں۔ اسی طرح، آپ اس پلگ ان کو npm کے ذریعے انسٹال کرتے ہیں اور پھر اسے اپنی ٹیسٹ فائلوں میں استعمال کرتے ہیں۔

  3. رپورٹرز : Mocha ٹیسٹ کے نتائج ظاہر کرنے کے لیے رپورٹرز کی مختلف اقسام کی حمایت کرتا ہے۔ ایک مقبول رپورٹر ہے mocha-reporter ، جو مختلف رپورٹ فارمیٹس فراہم کرتا ہے جیسے کہ spec، dot، اور مزید۔ آپ اس رپورٹر کی وضاحت کر سکتے ہیں جسے آپ کمانڈ لائن کے اختیارات کے ذریعے یا کنفیگریشن فائل میں استعمال کرنا چاہتے ہیں۔

مثال کے طور پر، mocha-reporter رپورٹر کو استعمال کرنے کے لیے، آپ درج ذیل کمانڈ کو چلا سکتے ہیں:

mocha --reporter mocha-reporter tests/*.js

یہ ڈائرکٹری میں ٹیسٹ چلائے گا tests اور رپورٹر کا استعمال کرتے ہوئے نتائج دکھائے گا mocha-reporter ۔

پلگ انز اور رپورٹرز کا استعمال کرکے، آپ اپنے پروجیکٹ کی جانچ کی ضروریات کو پورا کرنے Mocha اور اس کی خصوصیات کو اپنی مرضی کے مطابق اور بڑھا سکتے ہیں۔ Chai