نوشتن کد به سبک S.O.L.I.D

اصول Test Driven Development

تاریخ : یکشنبه 28 آبان 1396

پیش از این ، با مطلبی تحت عنوان اصول S.O.L.I.D در طراحی شی گرا (OOD) با این مبحث آشنا شدیم و به تفکیک به بررسی 5 اصل اساسی آن پرداختیم.

در این قسمت بررسی خواهیم کرد که چگونه کدهای S.O.L.I.D به ما در TDD کمک خواهد کرد. این اصول بطور خلاصه عبارتند از :

نقش SRP) Single responsibility principle) در TDD

یک کلاس باید یک و تنها یک دلیل برای تغییر داشته باشد، به این معنی که یک کلاس فقط باید یک مسئولیت داشته باشد

متدهایی که بیش از یک وظیفه را برعهده دارند، نیاز به آزمون هایی با پیچیدگی و دقت بیشتری دارند همچنین باید دقت شود به تنوع وظایف، ترتیب اجرای وظایف در آزمون حفظ گردد، که آزمون را طولانی تر می کنند و برای درک و حفظ آن با مشکلات بیشتری مواجه خواهیم شد.

به دلیل اینکه در SRP تنها یک وظیفه انجام می شود بنابراین نوشتن و درک آزمون ساده تر و همچنین درصورتیکه آزمون با شکست مواجه شد تنها نیاز به بررسی یک مکان برای بررسی عدم صحیح اجرا خواهد بود.

نقش OCP) Open closed principle) در TDD

نقش LSP) Liskov substitution principle) در TDD

کلاسهای به ارث رفته (مشتق شده) باید بتوانند جایگزین کلاسهای اصلی شوند.

LSP به ما کمک می کند که کدمان را با ایجاد جایگزین تست کنیم.

نقش ISP) Interface segregation principle) در TDD

تعداد بیشتری اینترفیس کوچک و خاص، بهتر از یک اینترفیس بزرگ (چاق) با متدهای بیشتر است.

ISP سبب می شود اینترفیس ها و کلاس ها کوچکتر شوند بنابراین تست های نوشته نیز ساده تر و دارای پیچیدگی کمتری باشند.

نقش DIP) Dependency inversion principle) در TDD

dependency-injection


منابع مورد مطالعه جهت جمع آوری این مطلب:
https://www.telerik.com/blogs/30-days-of-tdd-day-five-make-your-code-solid


نظرات