کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

نوشتن تست نرم افزاری برای اپلیکیشن با فریم ورک AssertJ

مقدمه ای بر AssertJ

AssertJ نیز یک کتابخانه اجرای تست نرم افزاری همچون Hamcrest است که با ارائه ی تعداد زیاری دستور assert و interface کارا به توسعه دهنده این اجازه را می دهد تا تست های نگهداشت پذیر و کارامد برای پروژه ی اندرویدی خود بنویسند. در واقع AssertJ یک شاخه از کتابخانه ای از دستورات assert به نام Fest است که امروزه دیگر به صورت حرفه ای پشتیبانی نمی شود.

کتابخانه ی مزبور بیشتر جهت آسان سازی نوشتن دستورات assert در تست های نرم افزاری و بهبود خوانایی آن ها تعبیه شد. این کتابخانه با برخورداری از interface کارامد، به توسعه دهنده امکان می دهد تا دستورات assert را به صورت کارا و روان (پشت سرهم) جهت تست بخش های نرم افزار بنویسد.

متد پایه و اصلی کتابخانه ی نام برده assertThat بوده و دستورات مربوط به assert (بررسی صحت اجرای دستور و برآورده شدن انتظارات) بلافاصله پس از این متد درج می شوند.

استفاده ی کاربردی از AssertJ

Gradle

جهت استفاده از AssertJ همراه با سیستم کامپایل Gradle در پروژه، لازم است کتابخانه (dependency) زیر را به فایل Gradle اضافه نمایید.

testCompile 'org.assertj:assertj-core:2.0.0'

Maven

به منظور استفاده از کتابخانه ی مورد نظر در پروژه ای که با سیستم Maven کامپایل می شود، کافی است dependency (کتابخانه ی) زیر را به فایل pom خود اضافه نمایید.


org.assertj
assertj-core
  
2.0.0
test

تنظیمات مرتبط با محیط کاری Eclipse

جهت استفاده از متد assertThat از کتابخانه ی AssertJ، پس از طی کردن مسیر رو به رو: Window ▸ Preferences ▸ Java ▸ Editor ▸ Content assist ▸ Favorites ▸ New Type ، دستور org.assertj.core.api.Assertions را درج نمایید.

پس از درج دستور فوق بایستی عبارت org.assertj.core.api.Assertions.* را در کد مشاهده نمایید.

تنظیمات مرتبط با محیط کاری IntelliJ

برای استفاده از محیط برنامه نویسی IntelliJ نیاز به تنظیمات خاصی نیست. کافی است واژه ی assertThat را تایپ نموده و سپس با فشردن کلیدهای (Ctrl-Space)، قابلیت تکمیل خودکار کد (code completion) محیط کاری میزبان را دو بار فراخوانی نمایید.

مثالی کاربردی ازAssertJ

نمونه کد زیر از صفحه ی اصلی سایت AssertJ اقتباس شده است.

// unique entry point to get access to all assertThat methods and utility methods (e.g. entry)
import static org.assertj.core.api.Assertions.*;
// common assertions
assertThat(frodo.getName()).isEqualTo("Frodo");
assertThat(frodo).isNotEqualTo(sauron)
                 .isIn(fellowshipOfTheRing);
// String specific assertions
assertThat(frodo.getName()).startsWith("Fro")
                           .endsWith("do")
                           .isEqualToIgnoringCase("frodo");
// collection specific assertions
assertThat(fellowshipOfTheRing).hasSize(9)
                               .contains(frodo, sam)
                               .doesNotContain(sauron);
// using extracting magical feature to check fellowshipOfTheRing characters name :)
assertThat(fellowshipOfTheRing)
        .extracting("name")
        .contains("Boromir", "Gandalf", "Frodo", "Legolas")
        .doesNotContain("Sauron", "Elrond");
// map specific assertions, ringBearers initialized with the elves rings and the one ring bearers.
assertThat(ringBearers).hasSize(4)
                       .contains(entry(oneRing, frodo), entry(nenya, galadriel))
                       .doesNotContainEntry(oneRing, aragorn);
// and many more assertions : dates, file, numbers, exceptions ...
1396/01/16 3095 1650
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...