# मॉडल के बिना Graphs की Testing — LangGraph Agents और Multi-Agent Systems

Source: https://www.geekswithgeeks.com/hi/langgraph-agents/t-test

> Scripted fakes से nodes, routers और पूरे प्रवाह की unit testing करें।

## Agent का अधिकांश साधारण कोड है

Nodes और routers सादे functions हैं, इसलिए उन्हें नमूना states से सीधे परखें। पूरे-graph tests के लिए model node को **scripted fake** से बदलें जो निश्चित क्रम लौटाए (जैसे tool-loop उदाहरण में) और अंतिम state, देखे गए nodes और रुकने के कारण पर assert करें। अप्रिय रास्ते कवर करें: tool error, अमान्य tool नाम, loop सीमा, अस्वीकृत अनुमोदन, interrupt के बाद फिर शुरू की thread। गुणवत्ता के लिए **असली मॉडल के विरुद्ध छोटा suite** अलग और कम बार चलाएँ, क्योंकि असली आउटपुट बदलते हैं। Graph की संरचना (nodes और edges) का snapshot रखें ताकि प्रवाह में आकस्मिक बदलाव समीक्षा में दिखें।

## Agents को भरोसेमंद बनाएँ

Nodes और routes मॉडल के बिना परखें, पूरे trajectories आँकें, और tracing व guardrails के साथ deploy करें।

![तीन आदतें: परखें, आँकें, सुरक्षा करें।](assets/figures/langgraph-agents/section-7-map.svg) — चित्र 7.1 — परखें, आँकें और सुरक्षा करें।

## Scripted मॉडल के साथ graph test (उदाहरण)

ऊपर के tool-loop उदाहरण जैसी ही शैली: कोई network नहीं, निश्चित। यहाँ test के रूप में चलाया नहीं गया।

```python
def test_agent_stops_after_final_answer():
    app = build_app(model_script=[
        {"tool": "add", "args": {"a": 2, "b": 3}},
        {"final": "5"},
    ])
    out = app.invoke({"messages": [{"user": "2+3?"}]}, {"recursion_limit": 10})
    assert out["messages"][-1] == {"final": "5"}
    assert {"tool_result": 5} in out["messages"]

def test_unknown_tool_is_reported_not_executed():
    app = build_app(model_script=[{"tool": "rm", "args": {}}, {"final": "sorry"}])
    out = app.invoke({"messages": [{"user": "delete everything"}]}, {"recursion_limit": 10})
    assert {"tool_result": "error: unknown tool"} in out["messages"]
```

**Quiz:** असली LLM बुलाए बिना पूरे graph को कैसे परखें?

- [ ] हर test के लिए production बुलाएँ
- [ ] नहीं परख सकते
- [x] Model node को scripted fake से बदलें
- [ ] Graph हटाएँ

*Answer:* Model node को scripted fake से बदलें. निश्चित fake tests को तेज़, मुफ़्त और दोहराने योग्य बनाता है।
