تست های واحد بخش مهمی از توسعه برنامه های کاربردی مدرن هستند. NUnit شاید شناخته شده ترین روش استفاده از آنها با کد دات نت باشد.
توسعه برنامههای کاربردی مدرن به آزمایشها بستگی دارد. چرخه عمر توسعه نرمافزار به گونهای تکامل یافته است که رویکرد آزمایش اول را در پیش گرفته است، با آزمایشهایی که از همان الزامات کد شما طراحی شدهاند. قلب این مدل تست واحد است که اطمینان حاصل می کند که هر ماژول کد شما به ورودی ها به درستی پاسخ می دهد و خروجی های مورد انتظار را ارائه می دهد.
این امر مستلزم ایجاد تستهایی قبل از نوشتن اولین خط کد خود است، و چارچوبی ارائه میکند که تضمین میکند تمام کدهای یک سیستم CI/CD (ادغام پیوسته و تحویل مداوم) قبل از مونتاژ در یک برنامه یا سرویس، آزمایشهای عملکردی را پشت سر گذاشتهاند. . این رویکرد اولین آزمایش برای متدولوژی های توسعه چابک مرکزی است و به اسپرینت ها هدفی می دهد که می تواند پیشرفت را اندازه گیری کند.
معرفی NUnit
شما باید در مراحل اولیه توسعه خود یک چارچوب آزمایشی را انتخاب کنید و ابزار مناسبی برای پلتفرم توسعه خود پیدا کنید. توسعه دهندگان جاوا احتمالاً JUnit آشنا را انتخاب می کنند و توسعه دهندگان دات نت احتمالاً NUnit مشابه را انتخاب می کنند. NUnit و JUnit بخشی از یک خانواده شل از ابزارهای مشتق شده از چارچوب اصلی تست Smalltalk SUnit هستند که همگی بر اساس معماری مشابهی ساخته شدهاند که از اجراکنندههای آزمایشی برای اجرای تستها، موارد برای توصیف تستها، فیکسچرها برای مدیریت وضعیت و زمینه یک تست استفاده میکند. همه در مجموعهای از آزمونها جمعبندی میشوند که باید قبول شوند.
NUnit بخشی از یک خانواده ابزارهای مرتبط است، بنابراین میتوانید مهارتهای توسعه آزمون موجود را از پلتفرمهای دیگر به دات نت بیاورید (و بالعکس). آزمونها به زبانهای داتنت نوشته میشوند، اما مفاهیم و ساختار اساسی مشابه باقی میمانند و حداقل منحنی یادگیری را تضمین میکنند. مستندات زیادی وجود دارد، بنابراین باید بتوانید خیلی سریع راهاندازی کنید. شما محدود به برنامه های ویندوز نیستید. پشتیبانی برای آزمایش برنامه های تلفن همراه نوشته شده با استفاده از Xamarin وجود دارد.
مانند بسیاری از سایر پلتفرمهای NET، NUnit یک پروژه منبع باز است که توسط بنیاد دات نت پشتیبانی میشود تیم توسعه اصلی آن در جامعه به خوبی شناخته شده است و بیش از یک دهه روی این پروژه کار کرده است. نسخه فعلی، نسخه ۳، یک بازنویسی بزرگ است، با آخرین نسخه در پایان مارس ۲۰۲۲ عرضه شد، و پشتیبانی بهبودیافتهای را برای NET 6 اضافه کرد. اگر شروع به استفاده از تستهای NUnit با .NET Framework کردید، میتوانید آن را بیاورید. ابزارهای آزمایشی مشابه به نسخههای جدید مبتنی بر NET.
شروع به کار با NUnit
NUnit ساده است. مانند بسیاری از ابزارهای دات نت، بسته هایی که برای اجرای چارچوب آزمایشی نیاز دارید از NuGet نصب می شوند یا می توان آنها را به عنوان نصب کننده ویندوز دانلود کرد. ابتدا بسته های NUnit و NUnit.Console را در راه حل خود نصب کنید. اولین مورد باید از کد تست شما ارجاع داده شود، اما نه از برنامه شما. اگر یک مخزن مرکزی NUnit برای استفاده در چندین راه حل می خواهید، فایل فشرده را دانلود و نصب کنید و آن را به مسیر خود اضافه کنید. سپس میتوانید به همان NUnit DLL از همه آزمایشهای خود، بدون توجه به اینکه کدام برنامه را آزمایش میکنند، ارجاع دهید.
ساختن اولین آزمون شما نسبتاً ساده است. هنگامی که ارجاعات را به NUnit به راه حل ویژوال استودیو خود اضافه کردید، می توانید شروع به ساخت تست در یک پروژه آزمایشی کنید. بنابراین، اگر کد شما در پروژهای به نام AppCode است، یک پروژه موازی برای آزمایشهای خود در همان راه حل ایجاد خواهید کرد، مثلا AppCode.NUnit. این باید برای منعکس کردن روشها و کلاسهای کد شما با آزمایشهای مناسب استفاده شود.
در پروژه خود، آخرین نسخه NUnit را از NuGet نصب کنید. یک فایل برای آزمون خود ایجاد کنید و یک مرجع به NUnit.Framework اضافه کنید، آماده نوشتن تست های خود. برای اکثر زبانهای NET پشتیبانی میشود، بنابراین میتوانید با C#، F#، Visual Basic.NET یا C++ مدیریت شده. برای اطمینان از اینکه روش ها را به درستی فراخوانی می کنید، ایده خوبی است که از همان زبان برای تست ها و کد استفاده کنید.
بحثهایی در مورد بهترین شیوهها برای نامگذاری کلاسها و روشهای آزمایشی وجود دارد. میتوانید از یک Test pre- یا post-fix برای نام کلاس یا متد در آزمون خود استفاده کنید، یا شاید نامهایی را که در برنامه خود دارید به آنها بدهید. من تمایل دارم رویکرد دوم را ترجیح دهم، زیرا به شما کمک میکند تا مطمئن شوید که سطح مناسبی از پوشش کد را در آزمایشهای خود دارید و میتوانید به سرعت ببینید کدام بخشهای یک برنامه از آزمایش فراخوانی نمیشوند.
طراحی و اجرای تست
بیشتر کار با NUnit در مورد تنظیم ویژگیها و پارامترهای مناسب است. برای مدیریت و اجرای آزمایشات. این کلاسها و روشها را در تستهای شما علامتگذاری میکنند، برای مثال، کلاسها را به عنوان TestFixture و متدها را به عنوان Test علامتگذاری میکنند.
A Test روشی را در برنامه شما با مقدار یا مجموعه ای از مقادیر از پیش تعریف شده فراخوانی می کند. این برای اعتبارسنجی پاسخ استفاده می شود، که از یک ادعا برای مقایسه پاسخ از روش با مقدار مورد انتظار استفاده می کند. در برخی موارد، این مقدار باید محاسبه شود. به عنوان مثال، اگر از روشی برای ارائه پاسخ مبتنی بر داده های خارجی استفاده می کنید، آزمایش شما به همان داده ها برای محاسبه مقدار مورد انتظار نیاز دارد. کارهای زیادی برای ساختن تست های مناسب برای کد خود می توانید انجام دهید. NUnit از مدل مبتنی بر محدودیت برای پردازش ادعاها استفاده میکند، که به نظر می رسد بسیار انعطاف پذیر است و به خوبی با روش های مختلف و ورودی ها و خروجی های آنها سازگار است.
پس از نوشتن، آزمایشها باید اجرا شوند. این کار را می توان از کنسول NUnit یا از آداپتور NUnit ویژوال استودیو این آخرین گزینه احتمالاً بهترین انتخاب شما برای اجرای تست های زیاد به عنوان بخشی از نوشتن کد است. با اجرای تست ها در داخل IDE خود، می توانید اطمینان حاصل کنید که تغییرات در کد برنامه ها را خراب نمی کند. اگر قصد دارید از NUnit به عنوان بخشی از فرآیند CI/CD برای خودکارسازی آزمایش قبل از تأیید درخواستهای کشش یا به عنوان بخشی از ساخت استفاده کنید، از NET CLI برای اجرای آزمایشهای خود استفاده کنید.
NUnit یکی از محبوب ترین ابزارهای تست واحد دات نت برای مدت طولانی است. رویکرد محدودیت و پارامتر محور آن برای طراحی و توسعه تست به شما روشی انعطافپذیر برای ساختن تستها و مدیریت آنها در کنار کلاسها و روشهای کدتان میدهد. از آنجایی که تستها باید قبل از کد ساخته شوند، میتوانید از فرآیندهای ضبط و طراحی نیازمندیهای خود برای ایجاد اولین پاس در مجموعهای از تستهای واحد استفاده کنید و از آنها برای تعریف روشها و APIهای خود استفاده کنید.
توسعه اولین تست نظم و انضباط را به چرخه عمر توسعه نرمافزار شما اضافه میکند – رشتهای که برای یک فرآیند توسعه چابک موفق ضروری است. تستهای شما قراردادی با کد شماست که به شما امکان میدهد هنگام ساخت و افزودن عملکرد، از مطابقت با الزامات آن اطمینان حاصل کنید. ویژگیهای آزمایشی جدید را میتوان اضافه کرد، و چون تستها کد هستند، همراه با برنامه در مخازن شما ذخیره میشوند. تستهایی که به خوبی طراحی شدهاند شاید بهتر باشد به عنوان بخشی از اسناد کد شما در نظر گرفته شوند که به توسعهدهندگان آینده این امکان را میدهند تا به سرعت هدف کد شما را درک کنند و بهروزرسانیها، اصلاحات و پورتهای لازم را انجام دهند.
پست های مرتبط
NUnit از ابزارهای منبع باز برای آزمایش کد NET استفاده می کند
NUnit از ابزارهای منبع باز برای آزمایش کد NET استفاده می کند
NUnit از ابزارهای منبع باز برای آزمایش کد NET استفاده می کند