தமிழ்

ஜாவாஸ்கிரிப்டில் சோதனை-உந்துதல் மேம்பாட்டில் (TDD) தேர்ச்சி பெறுங்கள். இந்த விரிவான வழிகாட்டி ரெட்-கிரீன்-ரீஃபாக்டர் சுழற்சி, ஜெஸ்ட் உடன் நடைமுறை பயன்பாடு மற்றும் நவீன மேம்பாட்டிற்கான சிறந்த நடைமுறைகளை உள்ளடக்கியது.

ஜாவாஸ்கிரிப்டில் சோதனை-உந்துதல் மேம்பாடு: உலகளாவிய டெவலப்பர்களுக்கான ஒரு விரிவான வழிகாட்டி

இந்தக் காட்சியை கற்பனை செய்து பாருங்கள்: ஒரு பெரிய, பழைய அமைப்பில் (legacy system) ஒரு முக்கியமான குறியீட்டுப் பகுதியை மாற்றியமைக்கும் பணி உங்களுக்கு வழங்கப்படுகிறது. உங்களுக்கு ஒருவித அச்ச உணர்வு ஏற்படுகிறது. உங்கள் மாற்றம் வேறு எதையாவது பாதிக்குமா? கணினி இன்னும் நோக்கம் கொண்டபடி செயல்படுகிறதா என்பதை நீங்கள் எப்படி உறுதியாக நம்ப முடியும்? மாற்றத்தைப் பற்றிய இந்த பயம் மென்பொருள் மேம்பாட்டில் ஒரு பொதுவான பிரச்சனையாகும், இது பெரும்பாலும் மெதுவான முன்னேற்றம் மற்றும் பலவீனமான பயன்பாடுகளுக்கு வழிவகுக்கிறது. ஆனால், மென்பொருளை நம்பிக்கையுடன் உருவாக்க ஒரு வழி இருந்தால், பிழைகள் உற்பத்திக்கு வருவதற்கு முன்பே அவற்றைப் பிடிக்கும் ஒரு பாதுகாப்பு வலையை உருவாக்கினால் என்ன செய்வது? இதுதான் சோதனை-உந்துதல் மேம்பாட்டின் (Test-Driven Development - TDD) வாக்குறுதியாகும்.

TDD என்பது ஒரு சோதனை நுட்பம் மட்டுமல்ல; இது மென்பொருள் வடிவமைப்பு மற்றும் மேம்பாட்டிற்கான ஒரு ஒழுங்குபடுத்தப்பட்ட அணுகுமுறையாகும். இது பாரம்பரியமான "குறியீட்டை எழுது, பிறகு சோதனை செய்" என்ற மாதிரியைத் தலைகீழாக மாற்றுகிறது. TDD உடன், உற்பத்தி குறியீட்டை எழுதுவதற்கு முன்பு தோல்வியடையும் ஒரு சோதனையை நீங்கள் எழுதுகிறீர்கள். இந்த எளிய தலைகீழ் மாற்றம் குறியீட்டின் தரம், வடிவமைப்பு மற்றும் பராமரிப்பு ஆகியவற்றில் ஆழமான தாக்கங்களை ஏற்படுத்துகிறது. இந்த வழிகாட்டி, தொழில்முறை டெவலப்பர்களின் உலகளாவிய பார்வையாளர்களுக்காக வடிவமைக்கப்பட்ட, ஜாவாஸ்கிரிப்டில் TDD-ஐ செயல்படுத்துவதற்கான ஒரு விரிவான, நடைமுறைப் பார்வையை வழங்கும்.

சோதனை-உந்துதல் மேம்பாடு (TDD) என்றால் என்ன?

அதன் மையத்தில், சோதனை-உந்துதல் மேம்பாடு என்பது மிகக் குறுகிய மேம்பாட்டுச் சுழற்சியின் மறுசெய்கையை நம்பியிருக்கும் ஒரு மேம்பாட்டு செயல்முறையாகும். அம்சங்களை எழுதிவிட்டுப் பிறகு அவற்றைச் சோதிப்பதற்குப் பதிலாக, முதலில் சோதனை எழுதப்பட வேண்டும் என்று TDD வலியுறுத்துகிறது. இந்த சோதனை தவிர்க்க முடியாமல் தோல்வியடையும், ஏனெனில் அந்த அம்சம் இன்னும் உருவாக்கப்படவில்லை. பின்னர் டெவலப்பரின் வேலை, அந்த குறிப்பிட்ட சோதனையில் தேர்ச்சி பெற சாத்தியமான எளிய குறியீட்டை எழுதுவதாகும். அது தேர்ச்சி பெற்றவுடன், குறியீடு சுத்தம் செய்யப்பட்டு மேம்படுத்தப்படுகிறது. இந்த அடிப்படைக் கண்ணி "ரெட்-கிரீன்-ரீஃபாக்டர்" (Red-Green-Refactor) சுழற்சி என்று அழைக்கப்படுகிறது.

TDD-இன் தாளம்: ரெட்-கிரீன்-ரீஃபாக்டர்

இந்த மூன்று-படி சுழற்சி TDD-இன் இதயத் துடிப்பாகும். இந்தத் தாளத்தைப் புரிந்துகொண்டு பயிற்சி செய்வது இந்த நுட்பத்தில் தேர்ச்சி பெறுவதற்கு அடிப்படையானது.

ஒரு சிறிய செயல்பாட்டிற்கான சுழற்சி முடிந்ததும், அடுத்த பகுதிக்கு ஒரு புதிய தோல்வியுறும் சோதனையுடன் மீண்டும் தொடங்குகிறீர்கள்.

TDD-இன் மூன்று விதிகள்

ஏஜைல் மென்பொருள் இயக்கத்தில் ஒரு முக்கிய நபரான ராபர்ட் சி. மார்ட்டின் ('அங்கிள் பாப்' என்று அழைக்கப்படுபவர்), TDD ஒழுக்கத்தை முறைப்படுத்தும் மூன்று எளிய விதிகளை வரையறுத்தார்:

  1. தோல்வியடையும் ஒரு யூனிட் சோதனையில் தேர்ச்சி பெறச் செய்வதற்காக அன்றி, வேறு எந்த உற்பத்தி குறியீட்டையும் நீங்கள் எழுதக்கூடாது.
  2. ஒரு யூனிட் சோதனையைத் தோல்வியடையச் செய்வதற்குப் போதுமானதை விட அதிகமாக நீங்கள் எழுதக்கூடாது; மற்றும் கம்பைல் தோல்விகளும் தோல்விகளே.
  3. தோல்வியடையும் அந்த ஒரு யூனிட் சோதனையில் தேர்ச்சி பெறப் போதுமானதை விட அதிகமாக உற்பத்தி குறியீட்டை நீங்கள் எழுதக்கூடாது.

இந்த விதிகளைப் பின்பற்றுவது உங்களை ரெட்-கிரீன்-ரீஃபாக்டர் சுழற்சிக்குள் கட்டாயப்படுத்துகிறது மற்றும் உங்கள் உற்பத்தி குறியீடு 100% ஒரு குறிப்பிட்ட, சோதிக்கப்பட்ட தேவையை பூர்த்தி செய்வதற்காக எழுதப்பட்டிருப்பதை உறுதி செய்கிறது.

நீங்கள் ஏன் TDD-ஐ பின்பற்ற வேண்டும்? உலகளாவிய வணிகத்திற்கான காரணம்

TDD தனிப்பட்ட டெவலப்பர்களுக்கு மகத்தான நன்மைகளை வழங்கினாலும், அதன் உண்மையான சக்தி குழு மற்றும் வணிக மட்டத்தில் உணரப்படுகிறது, குறிப்பாக உலகளவில் பரவியுள்ள சூழல்களில்.

உங்கள் ஜாவாஸ்கிரிப்ட் TDD சூழலை அமைத்தல்

ஜாவாஸ்கிரிப்டில் TDD உடன் தொடங்க, உங்களுக்கு சில கருவிகள் தேவை. நவீன ஜாவாஸ்கிரிப்ட் சூழல் அமைப்பு சிறந்த தேர்வுகளை வழங்குகிறது.

ஒரு சோதனை ஸ்டாக்கின் முக்கிய கூறுகள்

அதன் எளிமை மற்றும் அனைத்தும்-ஒன்றில்-இருக்கும் தன்மைக்காக, நாங்கள் எங்கள் எடுத்துக்காட்டுகளுக்கு ஜெஸ்ட்-ஐப் பயன்படுத்துவோம். "பூஜ்ஜிய-உள்ளமைவு" அனுபவத்தைத் தேடும் குழுக்களுக்கு இது ஒரு சிறந்த தேர்வாகும்.

ஜெஸ்ட் உடன் படிப்படியான அமைப்பு

TDD-க்காக ஒரு புதிய திட்டத்தை அமைப்போம்.

1. உங்கள் திட்டத்தைத் துவக்கவும்: உங்கள் டெர்மினலைத் திறந்து ஒரு புதிய திட்ட கோப்பகத்தை உருவாக்கவும்.

mkdir js-tdd-project
cd js-tdd-project
npm init -y

2. ஜெஸ்ட்-ஐ நிறுவவும்: ஜெஸ்ட்டை உங்கள் திட்டத்தில் ஒரு டெவலப்மெண்ட் சார்புநிலையாக சேர்க்கவும்.

npm install --save-dev jest

3. சோதனை ஸ்கிரிப்ட்டை உள்ளமைக்கவும்: உங்கள் `package.json` கோப்பைத் திறக்கவும். `"scripts"` பகுதியைக் கண்டுபிடித்து `"test"` ஸ்கிரிப்ட்டை மாற்றவும். TDD பணிப்பாய்வுக்கு மிகவும் மதிப்புமிக்க `"test:watch"` ஸ்கிரிப்ட்டையும் சேர்ப்பது மிகவும் பரிந்துரைக்கப்படுகிறது.

"scripts": {
  "test": "jest",
  "test:watch": "jest --watchAll"
}

`--watchAll` கொடி, ஒரு கோப்பு சேமிக்கப்படும் போதெல்லாம் சோதனைகளைத் தானாக மீண்டும் இயக்க ஜெஸ்ட்டிற்குச் சொல்கிறது. இது உடனடி பின்னூட்டத்தை வழங்குகிறது, இது ரெட்-கிரீன்-ரீஃபாக்டர் சுழற்சிக்கு ஏற்றது.

அவ்வளவுதான்! உங்கள் சூழல் தயாராக உள்ளது. ஜெஸ்ட் `*.test.js`, `*.spec.js` என பெயரிடப்பட்ட அல்லது `__tests__` கோப்பகத்தில் அமைந்துள்ள சோதனை கோப்புகளை தானாகவே கண்டுபிடிக்கும்.

TDD நடைமுறையில்: ஒரு `CurrencyConverter` மாட்யூலை உருவாக்குதல்

TDD சுழற்சியை ஒரு நடைமுறை, உலகளவில் புரிந்து கொள்ளப்பட்ட பிரச்சனைக்கு பயன்படுத்துவோம்: நாணயங்களுக்கு இடையில் பணத்தை மாற்றுவது. நாம் ஒரு `CurrencyConverter` மாட்யூலை படிப்படியாக உருவாக்குவோம்.

சுழற்சி 1: எளிய, நிலையான விகித மாற்றம்

🔴 சிவப்பு: முதல் தோல்வியடையும் சோதனையை எழுதுங்கள்

எங்கள் முதல் தேவை, ஒரு குறிப்பிட்ட தொகையை ஒரு நாணயத்திலிருந்து மற்றொரு நாணயத்திற்கு ஒரு நிலையான விகிதத்தைப் பயன்படுத்தி மாற்றுவது. `CurrencyConverter.test.js` என்ற புதிய கோப்பை உருவாக்கவும்.

// CurrencyConverter.test.js
const CurrencyConverter = require('./CurrencyConverter');

describe('CurrencyConverter', () => {
  it('should convert an amount from USD to EUR correctly', () => {
    // Arrange
    const amount = 10; // 10 USD
    const expected = 9.2; // Assuming a fixed rate of 1 USD = 0.92 EUR

    // Act
    const result = CurrencyConverter.convert(amount, 'USD', 'EUR');

    // Assert
    expect(result).toBe(expected);
  });
});

இப்போது, உங்கள் டெர்மினலிலிருந்து டெஸ்ட் வாட்சரை இயக்கவும்:

npm run test:watch

சோதனை மிக மோசமாகத் தோல்வியடையும். ஜெஸ்ட் `TypeError: Cannot read properties of undefined (reading 'convert')` போன்ற ஒன்றைப் புகாரளிக்கும். இது நமது சிவப்பு நிலை. `CurrencyConverter` இல்லாததால் சோதனை தோல்வியடைகிறது.

🟢 பச்சை: தேர்ச்சி பெற எளிய குறியீட்டை எழுதுங்கள்

இப்போது, சோதனையில் தேர்ச்சி பெறுவோம். `CurrencyConverter.js` ஐ உருவாக்கவும்.

// CurrencyConverter.js
const rates = {
  USD: {
    EUR: 0.92
  }
};

const CurrencyConverter = {
  convert(amount, from, to) {
    return amount * rates[from][to];
  }
};

module.exports = CurrencyConverter;

இந்தக் கோப்பை நீங்கள் சேமித்தவுடன், ஜெஸ்ட் சோதனையை மீண்டும் இயக்கும், அது பச்சை நிறமாக மாறும். சோதனையின் தேவையைப் பூர்த்தி செய்ய மிகக் குறைந்த குறியீட்டை நாங்கள் எழுதியுள்ளோம்.

🔵 ரீஃபாக்டர்: குறியீட்டை மேம்படுத்துங்கள்

குறியீடு எளிமையானது, ஆனால் நாம் ஏற்கனவே மேம்பாடுகளைப் பற்றி சிந்திக்க முடியும். உள்ளமைக்கப்பட்ட `rates` பொருள் சற்று கடினமாக உள்ளது. இப்போதைக்கு, அது போதுமான அளவு சுத்தமாக இருக்கிறது. மிக முக்கியமான விஷயம் என்னவென்றால், ஒரு சோதனையால் பாதுகாக்கப்பட்ட ஒரு வேலை செய்யும் அம்சம் எங்களிடம் உள்ளது. அடுத்த தேவைக்குச் செல்வோம்.

சுழற்சி 2: அறியப்படாத நாணயங்களைக் கையாளுதல்

🔴 சிவப்பு: தவறான நாணயத்திற்கான ஒரு சோதனையை எழுதுங்கள்

நமக்குத் தெரியாத ஒரு நாணயத்திற்கு மாற்ற முயற்சித்தால் என்ன நடக்கும்? அது ஒரு பிழையைத் தூண்ட வேண்டும். இந்த நடத்தையை `CurrencyConverter.test.js` இல் ஒரு புதிய சோதனையில் வரையறுப்போம்.

// In CurrencyConverter.test.js, inside the describe block

it('should throw an error for unknown currencies', () => {
  // Arrange
  const amount = 10;

  // Act & Assert
  // We wrap the function call in an arrow function for Jest's toThrow to work.
  expect(() => {
    CurrencyConverter.convert(amount, 'USD', 'XYZ');
  }).toThrow('Unknown currency: XYZ');
});

கோப்பை சேமிக்கவும். சோதனை ரன்னர் உடனடியாக ஒரு புதிய தோல்வியைக் காட்டுகிறது. இது சிவப்பு ஏனெனில் நமது குறியீடு ஒரு பிழையைத் தூண்டவில்லை; அது `rates['USD']['XYZ']` ஐ அணுக முயற்சிக்கிறது, இதன் விளைவாக ஒரு `TypeError` ஏற்படுகிறது. நமது புதிய சோதனை இந்தக் குறைபாட்டைச் சரியாக அடையாளம் கண்டுள்ளது.

🟢 பச்சை: புதிய சோதனையில் தேர்ச்சி பெறவும்

சரிபார்ப்பைச் சேர்க்க `CurrencyConverter.js` ஐ மாற்றுவோம்.

// CurrencyConverter.js
const rates = {
  USD: {
    EUR: 0.92,
    GBP: 0.80
  },
  EUR: {
    USD: 1.08
  }
};

const CurrencyConverter = {
  convert(amount, from, to) {
    if (!rates[from] || !rates[from][to]) {
      // Determine which currency is unknown for a better error message
      const unknownCurrency = !rates[from] ? from : to;
      throw new Error(`Unknown currency: ${unknownCurrency}`);
    }
    return amount * rates[from][to];
  }
};

module.exports = CurrencyConverter;

கோப்பை சேமிக்கவும். இரண்டு சோதனைகளும் இப்போது தேர்ச்சி பெறுகின்றன. நாம் மீண்டும் பச்சை நிலைக்கு வந்துவிட்டோம்.

🔵 ரீஃபாக்டர்: அதைச் சுத்தம் செய்யுங்கள்

நமது `convert` செயல்பாடு வளர்ந்து வருகிறது. சரிபார்ப்பு தர்க்கம் கணக்கீட்டுடன் கலக்கப்பட்டுள்ளது. வாசிப்புத்திறனை மேம்படுத்த சரிபார்ப்பை ஒரு தனிப்பட்ட தனி செயல்பாட்டிற்குள் பிரித்தெடுக்கலாம், ஆனால் இப்போதைக்கு, இது இன்னும் நிர்வகிக்கக்கூடியதாக உள்ளது. முக்கிய விஷயம் என்னவென்றால், இந்த மாற்றங்களைச் செய்ய நமக்கு சுதந்திரம் உள்ளது, ஏனென்றால் நாம் எதையாவது உடைத்தால் நமது சோதனைகள் நமக்குத் தெரிவிக்கும்.

சுழற்சி 3: ஒத்திசைவற்ற விகிதப் பெறுதல்

விகிதங்களை ஹார்ட்கோட் செய்வது நடைமுறைக்கு மாறானது. நமது மாட்யூலை ஒரு (போலியான) வெளிப்புற ஏபிஐ-யிலிருந்து விகிதங்களைப் பெறும் வகையில் ரீஃபாக்டர் செய்வோம்.

🔴 சிவப்பு: ஒரு ஏபிஐ அழைப்பைப் போலியாகச் செய்யும் ஒரு ஒத்திசைவற்ற சோதனையை எழுதுங்கள்

முதலில், நமது கன்வர்ட்டரை மறுசீரமைக்க வேண்டும். இது இப்போது நாம் ஒரு ஏபிஐ கிளையண்டுடன் ஒரு கிளாஸ் ஆக இருக்க வேண்டும். நாம் `fetch` ஏபிஐ-ஐ மாக் செய்யவும் வேண்டும். ஜெஸ்ட் இதை எளிதாக்குகிறது.

இந்த புதிய, ஒத்திசைவற்ற யதார்த்தத்திற்கு இடமளிக்க நமது சோதனை கோப்பை மீண்டும் எழுதுவோம். நாம் மீண்டும் மகிழ்ச்சியான பாதையைச் சோதிப்பதன் மூலம் தொடங்குவோம்.

// CurrencyConverter.test.js
const CurrencyConverter = require('./CurrencyConverter');

// Mock the external dependency
global.fetch = jest.fn();

beforeEach(() => {
  // Clear mock history before each test
  fetch.mockClear();
});

describe('CurrencyConverter', () => {
  it('should fetch rates and convert correctly', async () => {
    // Arrange
    // Mock the successful API response
    fetch.mockResolvedValueOnce({
      json: () => Promise.resolve({ rates: { EUR: 0.92 } })
    });

    const converter = new CurrencyConverter('https://api.exchangerates.com');
    const amount = 10; // 10 USD

    // Act
    const result = await converter.convert(amount, 'USD', 'EUR');

    // Assert
    expect(result).toBe(9.2);
    expect(fetch).toHaveBeenCalledTimes(1);
    expect(fetch).toHaveBeenCalledWith('https://api.exchangerates.com/latest?base=USD');
  });

  // We'd also add tests for API failures, etc.
});

இதை இயக்குவது ஒரு சிவப்பு கடலில் விளைவிக்கும். நமது பழைய `CurrencyConverter` ஒரு கிளாஸ் அல்ல, ஒரு `async` முறை இல்லை, மற்றும் `fetch` ஐப் பயன்படுத்தாது.

🟢 பச்சை: ஒத்திசைவற்ற தர்க்கத்தை செயல்படுத்தவும்

இப்போது, சோதனையின் தேவைகளைப் பூர்த்தி செய்ய `CurrencyConverter.js` ஐ மீண்டும் எழுதுவோம்.

// CurrencyConverter.js
class CurrencyConverter {
  constructor(apiUrl) {
    this.apiUrl = apiUrl;
  }

  async convert(amount, from, to) {
    const response = await fetch(`${this.apiUrl}/latest?base=${from}`);
    if (!response.ok) {
      throw new Error('Failed to fetch exchange rates.');
    }

    const data = await response.json();
    const rate = data.rates[to];

    if (!rate) {
      throw new Error(`Unknown currency: ${to}`);
    }

    // Simple rounding to avoid floating point issues in tests
    const convertedAmount = amount * rate;
    return parseFloat(convertedAmount.toFixed(2));
  }
}

module.exports = CurrencyConverter;

நீங்கள் சேமிக்கும்போது, சோதனை பச்சை நிறமாக மாற வேண்டும். நிதி கணக்கீடுகளில் ஒரு பொதுவான பிரச்சினையான மிதக்கும்-புள்ளித் தவறுகளைக் கையாள округление தர்க்கத்தையும் நாங்கள் சேர்த்துள்ளோம் என்பதைக் கவனியுங்கள்.

🔵 ரீஃபாக்டர்: ஒத்திசைவற்ற குறியீட்டை மேம்படுத்துங்கள்

இந்த `convert` முறை நிறைய செய்கிறது: பெறுதல், பிழை கையாளுதல், பாகுபடுத்துதல் மற்றும் கணக்கிடுதல். ஏபிஐ தகவல்தொடர்புக்கு மட்டுமே பொறுப்பான ஒரு தனி `RateFetcher` கிளாஸை உருவாக்குவதன் மூலம் இதை ரீஃபாக்டர் செய்யலாம். நமது `CurrencyConverter` பின்னர் இந்த ஃபெட்சரைப் பயன்படுத்தும். இது ஒற்றைப் பொறுப்புக் கொள்கையைப் பின்பற்றுகிறது மற்றும் இரண்டு கிளாஸ்களையும் சோதிக்கவும் பராமரிக்கவும் எளிதாக்குகிறது. TDD நம்மை இந்த சுத்தமான வடிவமைப்பை நோக்கி வழிநடத்துகிறது.

பொதுவான TDD முறைகள் மற்றும் எதிர்-முறைகள்

நீங்கள் TDD பயிற்சி செய்யும்போது, நன்றாக வேலை செய்யும் முறைகளையும், உராய்வை ஏற்படுத்தும் எதிர்-முறைகளையும் கண்டுபிடிப்பீர்கள்.

பின்பற்ற வேண்டிய நல்ல முறைகள்

தவிர்க்க வேண்டிய எதிர்-முறைகள்

பரந்த மேம்பாட்டு வாழ்க்கைச் சுழற்சியில் TDD

TDD ஒரு வெற்றிடத்தில் இல்லை. இது நவீன ஏஜைல் மற்றும் DevOps நடைமுறைகளுடன் அழகாக ஒருங்கிணைக்கிறது, குறிப்பாக உலகளாவிய குழுக்களுக்கு.

முடிவுரை: TDD உடன் உங்கள் பயணம்

சோதனை-உந்துதல் மேம்பாடு என்பது ஒரு சோதனை உத்தியை விட மேலானது—இது நாம் மென்பொருள் மேம்பாட்டை அணுகும் விதத்தில் ஒரு முன்னுதாரண மாற்றம். இது தரம், நம்பிக்கை மற்றும் ஒத்துழைப்பின் கலாச்சாரத்தை வளர்க்கிறது. ரெட்-கிரீன்-ரீஃபாக்டர் சுழற்சி ஒரு நிலையான தாளத்தை வழங்குகிறது, அது உங்களை சுத்தமான, வலுவான மற்றும் பராமரிக்கக்கூடிய குறியீட்டை நோக்கி வழிநடத்துகிறது. இதன் விளைவாக வரும் சோதனைத் தொகுப்பு உங்கள் அணியை பின்னடைவுகளிலிருந்து பாதுகாக்கும் ஒரு பாதுகாப்பு வலையாகவும், புதிய உறுப்பினர்களை உள்வாங்கும் ஒரு வாழும் ஆவணமாகவும் மாறுகிறது.

கற்றல் வளைவு செங்குத்தானதாக உணரப்படலாம், மற்றும் ஆரம்ப வேகம் மெதுவாகத் தோன்றலாம். ஆனால் பிழைத்திருத்த நேரத்தைக் குறைத்தல், மென்பொருள் வடிவமைப்பை மேம்படுத்துதல் மற்றும் டெவலப்பர் நம்பிக்கையை அதிகரித்தல் ஆகியவற்றில் நீண்ட காலப் பலன்கள் அளவிட முடியாதவை. TDD-ஐ மாஸ்டர் செய்வதற்கான பயணம் ஒழுக்கம் மற்றும் பயிற்சியின் ஒன்றாகும்.

இன்றே தொடங்குங்கள். உங்கள் அடுத்த திட்டத்தில் ஒரு சிறிய, முக்கியமற்ற அம்சத்தைத் தேர்ந்தெடுத்து, செயல்முறைக்கு உங்களை அர்ப்பணிக்கவும். முதலில் சோதனையை எழுதுங்கள். அது தோல்வியடைவதைப் பாருங்கள். அதை தேர்ச்சி பெறச் செய்யுங்கள். பின்னர், மிக முக்கியமாக, ரீஃபாக்டர் செய்யுங்கள். ஒரு பச்சை சோதனைத் தொகுப்பிலிருந்து வரும் நம்பிக்கையை அனுபவியுங்கள், நீங்கள் எப்படி மென்பொருளை வேறு எந்த வழியிலும் உருவாக்கினீர்கள் என்று விரைவில் ஆச்சரியப்படுவீர்கள்.

ஜாவாஸ்கிரிப்டில் சோதனை-உந்துதல் மேம்பாடு: உலகளாவிய டெவலப்பர்களுக்கான ஒரு விரிவான வழிகாட்டி | MLOG