యూనిట్ టెస్ట్ AI గైడ్: జీరో హాలూసినేషన్

AI తరచుగా యూనిట్ టెస్టింగ్‌లో విఫలమవుతుంది. అది కొత్త మెథడ్స్‌ను సృష్టిస్తుంది. తప్పుడు మాక్ (mock) స్ట్రక్చర్లను రూపొందిస్తుంది. లేని ఇంపోర్ట్‌లను ఉపయోగిస్తుంది. AIకి ఖచ్చితమైన కాంటెక్స్ట్ (context) లేకపోవడం వల్ల ఇలా జరుగుతుంది.

ఒక డిటర్మినిస్టిక్ (deterministic) సిస్టమ్‌ను ఉపయోగించడం ద్వారా మీరు దీనిని ఆపవచ్చు. మీరు ఊహించడం నుండి అమలు చేయడం (enforcing) వైపు మారాలి.

ఐదు ప్రధాన స్టాక్‌లలో జీరో-హాలూసినేషన్ యూనిట్ టెస్ట్‌ల కోసం ఇక్కడ ఒక ప్రమాణం (standard) ఉంది.

ది టెక్ స్టాక్ స్టాండర్డ్ (The Tech Stack Standard)

ప్రతి స్టాక్‌కు ఒక లైబ్రరీని ఎంచుకోండి. వాటిని కలపకండి.

  • Node.js (NestJS/Express): Jest
  • React.js: Vitest + React Testing Library
  • Python: pytest
  • Angular: Jest
  • Laravel: Pest

రహస్యం: ప్రాజెక్ట్-స్కోప్డ్ రూల్స్ (Project-Scoped Rules)

సాధారణ ప్రాంప్ట్‌లు సరిపోవు. మీరు మీ IDEలోకి నేరుగా రూల్స్‌ను ఇంజెక్ట్ చేయాలి. మీరు Cursor ఉపయోగిస్తుంటే, .cursor/rules/ డైరెక్టరీని ఉపయోగించండి.

ప్రతి సాంకేతికత కోసం నిర్దిష్ట రూల్ ఫైల్‌లను సృష్టించండి:

  • unit-test-global.mdc: AAA (Arrange, Act, Assert) ప్యాటర్న్‌ను సెట్ చేస్తుంది.
  • unit-test-nestjs.mdc: TestingModule మరియు jest-mock-extendedను అమలు చేస్తుంది.
  • unit-test-react.mdc: fireEvent కంటే user-eventను తప్పనిసరి చేస్తుంది.
  • unit-test-python.mdc: pytest-mock ప్యాటర్న్‌లను ప్రామాణీకరిస్తుంది.
  • unit-test-laravel.mdc: Pest సింటాక్స్ మరియు Mockery వినియోగాన్ని నిర్ధారిస్తుంది.

ఈ ఫైల్‌లు ఒక ఒప్పందం (contract) వలె పనిచేస్తాయి. ప్రతి ప్రాంప్ట్‌కు ముందు AI వీటిని చదువుతుంది. ఇది మూలాల వద్దే హాలూసినేషన్‌ను నివారిస్తుంది.

యూనిట్ టెస్ట్ కాంట్రాక్ట్ (The Unit Test Contract)

ప్రతి టెస్ట్ ఈ ఐదు నియమాలను పాటించాలి:

  • ఐసోలేషన్ (Isolation): అన్ని బాహ్య డిపెండెన్సీలను మాక్ (Mock) చేయండి. నిజమైన DB లేదా HTTP కాల్స్ ఉండకూడదు.
  • స్ట్రక్చర్ (Structure): AAAని ఉపయోగించండి. ఎల్లప్పుడూ మీ Arrange, Act, మరియు Assert బ్లాక్‌లకు కామెంట్ చేయండి.
  • నేమింగ్ (Naming): "should [behavior] when [condition]" అని ఉపయోగించండి. "test 1" వంటి అస్పష్టమైన పేర్లను నివారించండి.
  • కవరేజ్ (Coverage): హ్యాపీ పాత్ (happy path), నల్ ఇన్‌పుట్‌లు (null inputs), ఎర్రర్ పాత్‌లు మరియు ఎడ్జ్ కేస్‌లను టెస్ట్ చేయండి.
  • స్పీడ్ (Speed): ప్రతి టెస్ట్ 100ms కంటే తక్కువ సమయంలో రన్ అవ్వాలి.

అమలు చేసే దశలు (Implementation Steps)

  1. మీ లైబ్రరీ మరియు కాన్ఫిగరేషన్ ఫైల్‌లను సెటప్ చేయండి.
  2. మీ .cursor/rules/ ఫోల్డర్‌ను సృష్టించండి.
  3. శాశ్వత మెమరీగా పనిచేయడానికి మీ ప్రాజెక్ట్ రూట్‌లో CLAUDE.md ఫైల్‌ను జోడించండి.
  4. మీ CI పైప్‌లైన్‌లో కవరేజ్ త్రెషోల్డ్‌లను (coverage thresholds) సెట్ చేయండి (80% లైన్ల లక్ష్యంగా పెట్టుకోండి).
  5. టెస్ట్ చేయని కోడ్ రిపోజిటరీలోకి రాకుండా ఉండటానికి pre-commit hooks ఉపయోగించండి.

AIని టెస్ట్‌లు రాయమని అడగడం ఆపండి. టెస్ట్‌లను ఎలా రాయాలో AIకి చెప్పడం ప్రారంభించండి.

Source: https://dev.to/bhaumik-viitor/unit-test-ai-guide-zero-hallucination-cross-stack-standard-4mb2

Optional learning community: https://t.me/GyaanSetuAi