دوره مقدماتی جاوا
نصب ابزار
آشنایی با پکیج منیجر Chocolatey-
ابزار مدیریت پروژه Maven
-
جاوا چطور کار میکنه؟
-
دانلود و نصب JDK 8
-
معرفی محیط های توسعه جاوا
-
نصب IntelliJ IDEA Community
-
ساخت و اجرای اولین پروژه جاوا
- مفاهیم و اصول برنامهنویسی شیء گراساختار کد در جاوا
-
گفتگوی JVM و compiler، کی مهمتره؟!
-
نوشتن برنامه به کمک تست (TDD)
-
سفری به دنیای شیء گرایی
-
تفاوت بین کلاس و شیء
-
روش Given-When-Then برای نوشتن تست
-
بازی حدس اعداد (Guessing Game)
-
مدیریت حافظه در جاوا: Garbage Collection
-
وراثت (Inheritance)
-
پلیمورفیسم (Polymorphism)
-
متغیرهای خود را بشناسید
-
How Objects Behave
-
Extra-Strength Methods
-
Using the Java Library
-
Better Living in Objectville
-
Serious Polymorphism
-
Life and Death of an Object
-
Numbers Matter
-
Data Structures
-
Lambdas and Streams: What, Not How
-
Risky Behavior
-
A Very Graphic Story
-
Work on Your Swing
-
Saving Objects (and Text)
-
Make a Connection
-
Dealing with Concurrency Issues
روش Given-When-Then برای نوشتن تست
خب راستش، وقتی یه کد مینویسیم، دوست داریم مطمئن بشیم که دقیقاً همون کاری رو میکنه که باید. یا مثلاً وقتی یه پروژه تیمی داریم، باید همه بدونن که یه بخش از برنامه چطوری کار میکنه.
روش Given-When-Then دقیقاً اینجا به کمکمون میاد!
قدیما تستها فقط یه سری کد بودن که بیشتر افراد تیم (غیر از برنامهنویسها) نمیتونستن بفهمن. اما تو دنیای واقعی، تستها فقط برای برنامهنویس نیستن. بقیه اعضای تیم مثل مدیر پروژه، طراح تجربه کاربری، یا حتی مشتری هم باید بفهمن برنامه دقیقاً چی کار میکنه.
روش Given-When-Then اومد تا این مشکل رو حل کنه:
- سادهسازی تستها: تستها به جای کدهای پیچیده، به زبونی نزدیک به زبان طبیعی نوشته میشن.
- درک مشترک: همه اعضای تیم میتونن تستها رو بخونن و نظر بدن.
- ارتباط تیمی بهتر: همه میفهمن برنامه چطور کار میکنه و انتظارشون از سیستم یکی میشه.
تاریخچه روش Given-When-Then
دهه 1990: ظهور تستهای رفتارمحور (Behavior-Driven Development – BDD)
این روش از دل رویکرد توسعه رفتارمحور (BDD) بیرون اومده. BDD در دهه ۹۰ میلادی توسط افراد خلاقی مثل دن نورث (Dan North) مطرح شد. ایده اصلی BDD این بود که تستها و مستندات باید قابلفهم برای همهی افراد تیم باشن، نه فقط برنامهنویسها.دهه 2000: معرفی GWT در BDD
وقتی BDD جا افتاد، روش Given-When-Then بهعنوان ابزاری برای نوشتن تستها و سناریوها پیشنهاد شد. این روش به کمک دن نورث و توسعهدهندگان دیگهای مثل لیز کیو (Liz Keogh) توسعه پیدا کرد. هدفشون ساده بود:- ایجاد یه زبان مشترک برای تیمها.
- کاهش پیچیدگی در توضیح رفتار سیستمها.
استفاده در ابزارهای BDD
بعدها ابزارهایی مثل Cucumber و SpecFlow به کار گرفته شدن تا این روش رو تو پروژههای مختلف استفاده کنن. اگه قبلاً اسم این ابزارها رو شنیدی، باید بدونی که Given-When-Then قلب تپندهشون بوده!
Given چیه؟
اینجا شرایط اولیه تعریف میشه. یعنی برنامه یا سیستم تو چه وضعیتی قرار داره. مثلاً:
- دادههایی که آمادهست.
- اتفاقهایی که قبلاً افتاده.
- وضعیتی که قراره ازش شروع کنیم.
مثال:
«فرض کن یه بازی داریم که عددی تصادفی تولید میکنه و بازیکنها قراره اون رو حدس بزنن.»
When چیه؟
وقتی که یه اکشن (عمل) انجام بشه. اینجا توضیح میدیم چه اتفاقی قراره بیفته یا چه کاری کاربر انجام میده. مثلاً:
- دکمهای کلیک میشه.
- تابعی اجرا میشه.
- یه ورودی به برنامه داده میشه.
مثال:
«وقتی بازیکن یه عدد رو حدس میزنه و عددش رو ثبت میکنه.»
Then چیه؟
حالا باید نتیجهی اون عمل رو توضیح بدیم. این بخش خروجی یا نتیجهای رو که انتظار داریم، نشون میده.
- چه چیزی برمیگرده؟
- چه اتفاقی توی سیستم میافته؟
- چه تغییری اعمال میشه؟
مثال:
«اگه عدد حدس بازیکن درست باشه، بازی اعلام میکنه که اون برنده شده.»