همیشه در حین توسعهی یک برنامه این سؤالات وجود دارند:- چند درصد از برنامه تست شده است؟- برای چه تعدادی از متدهای موجود آزمون واحد نوشتهایم؟- آیا همین آزمونهای واحد نوشته شده و موجود، کامل هستند و تمام عملکردهای متدهای مرتبط را پوشش میدهند؟این سؤالات به صورت خلاصه مفهوم Code coverage را در بحث Unit testing ارائه میدهند: برای چه قسمتهایی از برنامه آزمون واحد ننوشتهایم و میزان پوشش برنامه توسط آزمونهای واحد موجود تا چه حدی است؟بررسی ا ...
تعدادی ابزار برای تولید خودکار متدهای آزمونهای واحد NUnit از روی کلاسهای موجود در یک اسمبلی وجود دارند که به دو دسته تقسیم میشود:الف) آنهایی که فقط نام کلاسهای آزمون واحد و نام متدهای آنرا به صورت خودکار تولید میکنندNStubTop Coder .Net Test GeneratorCodeSmith NUnit Test Generatorاین ابزارها و کتابخانهها، تنها کاری که انجام میدهند یافتن کلاسها و متدهای عمومی موجود در یک اسمبلی توسط Reflection و سپس تولید یک سری فایل آماده از روی ...
استفاده از mocking frameworks :تعدادی از چارچوبهای تقلید نوشته شده برای دات نت فریم ورک مطابق لیست زیر بوده و هدف از آنها ایجاد سادهتر اشیاء تقلید برای ما میباشد:Nmock : http://www.nmock.orgMoq : http://code.google.com/p/moqRhino Mocks : http://ayende.com/projects/rhino-mocks.aspxTypeMock : http://www.typemock.comEasyMock.Net : http://sourceforge.net/projects/easymocknetدر این بین Rhino Mocks که توسط یکی از اعضای اصلی تیم NHibernate به ...
این مطلب در ادامهی مطالب آزمونهای واحد یا unit testing است.نوشتن آزمون واحد برای کلاسهایی که با یک سری از الگوریتمها ، مسایل ریاضی و امثال آن سر و کار دارند، ساده است. عموما این نوع کلاسها وابستگی خارجی آنچنانی ندارند؛ اما در عمل کلاسهای ما ممکن است وابستگیهای خارجی بسیاری پیدا کنند؛ برای مثال کار با دیتابیس، اتصال به یک وب سرویس، دریافت فایل از اینترنت، خواندن اطلاعات از انواع فایلها و غیره.مطابق اصول آزمایشات واحد، یک آزمون واحد ...
MBUnit که یکی دیگر از فریم ورکهای آزمایش واحد یا unit testing دات نت به شمار میرود، نگارش 3 بتا آن از سال 2007 شروع شده و اخیرا نگارش نهایی 3 آن ارائه گردیده است.جهت مشاهدهی جزئیات آخرین تغییرات اعمال شده در نگارش جدید آن، MbUnit v3.0.6 Update 1 میتوان به وبلاگ یکی از اعضای اصلی تیم مراجعه نمود.Added support for TestDriven.Net category filters.Added support for more powerful inclusion/exclusion test filter expressions.Fixed ReSharper v ...
افزونهی ReSharper بهدلیل یکپارچه کردن امکان استفاده از NUnit در ویژوال استودیو، یکی از انتخابهای اول جهت انجام آزمایشات واحد در این محیط به شمار میرود.اخیرا آقای Genisio چند قالب ایجاد آزمونهای NUnit را مخصوص ReSharper ایجاد کردهاند، که در ادامه در مورد نحوهی استفاده از آنها توضیح داده خواهد شد.پس از دریافت فایلها، برای استفاده، به منوی ReSharper گزینهی live templates مراجعه نمائید. سپس بر روی نوار ابزار صفحهی باز شده، روی دکمه ...
ادامه آشنایی با NUnitفرض کنید یک RSS reader نوشتهاید که فیدهای فارسی و انگلیسی را دریافت میکند. به صورت پیش فرض هم مشخص نیست که کدام فید اطلاعات فارسی را ارائه خواهد داد و کدامیک انگلیسی. تشخیص محتوای فارسی و از راست به چپ نشان دادن خودکار مطالب آنها به عهدهی برنامه نویس است. بهترین روش برای تشخیص این نوع الگوها، استفاده از regular expressions است.برای مثال الگوی تشخیص اینکه آیا متن ما حاوی حروف انگلیسی است یا خیر به صورت زیر است:[a-z ...
ادامه آشنایی با NUnitحالتهای مختلف Assert :NUnit framework حالتهای مختلفی از دستور Assert را پشتیبانی میکند که در ادامه با آنها آشنا خواهیم شد.کلاس Assertion :این کلاس دارای متدهای زیر است:public static void Assert(bool condition)public static void Assert(string message, bool condition)تنها در حالتی این بررسی موفقیت آمیز گزارش خواهد شد که condition مساوی true باشدpublic static void AssertEquals(string message, object expected, object ac ...
ادامه آشنایی با NUnitاگر قسمت سوم را دنبال کرده باشید احتمالا از تعداد مراحلی که باید در خارج از IDE صورت گیرد گلایه خواهید کرد (کامپایل کن، اجرا کن، اتچ کن، باز کن، ذخیره کن، اجرا کن و ...). خوشبختانه افزونه ReSharper این مراحل را بسیار ساده و مجتمع کرده است.این افزونه به صورت خودکار متدهای آزمایش واحد یک پروژه را تشخیص داده و آنها را با آیکونهایی ( Gutter icons ) متمایز مشخص میسازد (شکل زیر). پس از کلیک بر روی آنها ، امکان اجرای آزمای ...
آشنایی با NUnitNUnit یکی از فریم ورکهای آزمایش واحد سورس باز مخصوص دات نت فریم ورک است. (کلا در دات نت هرجایی دیدید که N ، به ابتدای برنامهای یا کتابخانهای اضافه شده یعنی نمونه منتقل شده از محیط جاوا به دات نت است. برای مثال NHibernate از Hibernate جاوا گرفته شده است و الی آخر)این برنامه با سی شارپ نوشته شده است اما تمامی زبانهای دات نتی را پشتیبانی میکند (اساسا با زبان نوشته شده کاری ندارد و فایل اسمبلی برنامه را آنالیز میکند. بنابر ...