Header Ads

Header ADS

The Basic Syntax To Write Mock

 খুব ভালো প্রশ্ন 👍

এটাই আসলে mocking শেখার biggest pain point

👉 Beginnerরা syntax মুখস্থ করতে যায় — তাই confused হয়।
👉 Senior engineerরা pattern বুঝে লেখে।

আজকে আমি তোমাকে এমনভাবে বুঝাবো যাতে তুমি নিজে নিজে syntax লিখতে পারো


✅ তুমি যে লাইনটা বলছো

mock_get.return_value.status_code = 200

তোমার প্রশ্ন:

কেন এক এক জায়গায় এক এক রকম হয়?
আমি manually লিখতে গেলে বুঝি না কী লিখবো।

🔥 কারণ — এটা fixed syntax না।
এটা production code এর structure follow করে


⭐ GOLDEN RULE (সবচেয়ে গুরুত্বপূর্ণ)

👉 Mock structure = Real object structure

মানে:

REAL CODE যেমন → MOCK তেমন

✅ Step-by-Step Thinking Process


1️⃣ প্রথমে Production Code দেখো

res = requests.get("https://api.com")
return res.status_code

এখানে flow কী?

requests.get()
        ↓
response object
        ↓
response.status_code

2️⃣ এখন প্রশ্ন করো

👉 requests.get() কী return করে?

✔️ response object


3️⃣ তাহলে Mock এ কী লিখবো?

আমাদের fake response বানাতে হবে।

Structure follow করি:

requests.get()
        ↓
mock_get.return_value

4️⃣ এরপর?

Production code access করছে:

res.status_code

তাই লিখবো:

mock_get.return_value.status_code = 200

✅ DONE


🔥 Visual Mapping (VERY IMPORTANT)

Real CodeMock Code
requests.get()mock_get
return objectmock_get.return_value
.status_code.status_code

✅ Example 2 — JSON Response


Production

data = requests.get(url).json()

Flow:

requests.get()
        ↓
response
        ↓
.json()

Mock

mock_get.return_value.json.return_value = {"name": "Ali"}

Breakdown

RealMock
get()mock_get
responsereturn_value
json()json
json returnjson.return_value

✅ Example 3 — Database Call


Production

user = db.find_user(10)
return user.name

Mock Thinking

db.find_user()
        ↓
user object
        ↓
.name

Mock Syntax

mock_db.find_user.return_value.name = "Ali"

✅ Example 4 — Class Mock


Production

db = Database()
db.save()

Mock

mock_db.return_value.save.return_value = True

Flow:

Database()
   ↓
instance
   ↓
save()

🔥 UNIVERSAL MOCK FORMULA

এটা মুখস্থ না — বুঝে ফেলো:

function()          → return_value
attribute           → attribute
method()            → method.return_value

⭐ Cheat Sheet

Production CodeMock Syntax
func()mock.return_value
obj.attr.attr
obj.method().method.return_value
chained callchain same way

✅ Senior Engineer Workflow (REAL SECRET)

Mock লিখার আগে:

Step 1

Production code পড়ো

Step 2

Call chain লিখো

A() → B → C()

Step 3

Same chain mock এ লিখো

mock.return_value.B.C.return_value

🔥 Example (Interview Level)

Production:

client.get_user().profile.get_name()

Mock:

mock_client.get_user.return_value.profile.get_name.return_value = "Ali"

👉 Exact mirror copy.


⭐ Why Beginners Get Confused

কারণ তারা:

❌ syntax মুখস্থ করে
✅ structure analyse করে না


✅ One Sentence Memory Rule

👉 Mock লিখতে গেলে real code এর chain copy করো।


চাও আমি next এ শেখাই —

🔥 Mocking Debug Technique
(যেটা senior engineerরা ব্যবহার করে instantly বুঝে ফেলে কী mock লিখতে হবে)

এটা জানলে আর কখনো mocking এ stuck হবে না।

Powered by Blogger.