اچھے ٹیسٹ لکھنا — جو قابل اعتماد، برقرار اور قیمتی ہوں — مقررہ بہترین طریقوں پر عمل کرتا ہے۔ غلط ٹیسٹ (نازک، سست، غیر واضح) ایک بوجھ بن جاتے ہیں، جبکہ اچھے ٹیسٹ دیر پا قیمت فراہم کرتے ہیں۔ ان طریقوں کو سمجھنا موثر ٹیسٹنگ کے لیے اہم ہے۔
اچھے ٹیسٹ کی خصوصیات (FIRST)
FAST → run quickly (so they're run often)
INDEPENDENT/ISOLATED → don't depend on each other or order; each sets up its own state
REPEATABLE → same result every time, any environment (no flakiness)
SELF-VALIDATING → clear pass/fail (assertions, not manual inspection)
TIMELY → written with (or before) the code
اہم طریقے
✓ Test BEHAVIOR, not implementation → tests survive refactoring (don't test internals)
✓ ONE concept per test → focused tests; clear what failed when one breaks
✓ CLEAR NAMES — describe what's tested ("returns error when email is invalid")
✓ Arrange-Act-Assert structure → readable, organized
✓ Cover EDGE cases and error conditions (not just the happy path)
✓ Keep tests SIMPLE and readable (tests are documentation; avoid complex logic in tests)
✓ DETERMINISTIC — no reliance on time, randomness, external state, or order (avoid flaky)
✓ DRY but readable — share setup (fixtures), but keep each test clear on its own
