دوشنبه , ۱۰ اردیبهشت ۱۴۰۳

آموزش Robolectric-قسمت دوازدهم: سفارشی‌سازی Test Runner

Robolectric Tool
Robolectric Tool

شرایط مختلفی وجود دارد که شما تمایل دارید تا Robolectric Test Runner را سفارشی‌سازی(Customize) نمایید تا بدین ترتیب قبل از اینکه همه تست‌ها و یا حتی قبل از اینکه هر Test Method اجرا شود، برخی عملیات‌ها را انجام دهید.

یک مثال خوب برای این موضوع مقداردهی اولیه(Initialize) برای Dependency Injection Framework با مجموعه‌ای از Dependencyهای مختلف برای تست شماست. خوشبختانه Robolectric یک راه برای Hook شدن در چرخه عمر تست دارد. اگر شما یک Application class در AndroidManifest.xml خود تعریف کنید، Robolectric به طور خودکار ابتدا سعی می‌کند یک نسخه آزمایشی از Application class شما را بارگذاری نماید. مثلا:

بگذارید بگوییم شما یک FooApplication را در مانیفست خود تعریف کرده‌اید:

<application android:name=".FooApplication">

اگر از RoboGuice استفاده می‌کنید، شما Injector را در Application class خود مقداردهی اولیه(Initialize) می‌کنید:

public class FooApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        ApplicationModule module = new ApplicationModule();
        setBaseApplicationInjector(this, DEFAULT_STAGE, newDefaultRoboModule(this), module);
    }
}

شما می‌توانید نسخه آزمایشی اپلیکیشن را با نام TestFooApplication تعریف کنید:

public class TestFooApplication extends FooApplication implements TestLifecycleApplication {
    @Override
    public void onCreate() {
        super.onCreate();

        TestApplicationModule module = new TestApplicationModule();
        setBaseApplicationInjector(this, DEFAULT_STAGE, newDefaultRoboModule(this), module);
    }

    @Override
    public void beforeTest(Method method) {
    }

    @Override
    public void prepareTest(Object test) {
        getInjector(this).injectMembers(test);
    }

    @Override
    public void afterTest(Method method) {
    }
}

Robolectric نسخه آزمایشی برنامه را بارگذاری می‌کند، که شما می‌توانید از آن برای بارگذاری یک مجموعه از Bindingها در طول تست استفاده نمایید.

تمام قسمت‌های آموزش Robolectric، به صورت دسته‌بندی شده از اینجا نیز در دسترس است.

ابوالفضل خواجه دیزجی

همچنین ببینید

Selenium

آموزش Selenium-قسمت هفدهم: Mouse Click Event و Keyboard Event و موضوع Action Class در Selenium WebDriver

در این بخش، ما رویداد کیبورد(Keyboard Event) و ماوس(Mouse Event) را در Selenium Webdriver آموزش …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *