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

آموزش Robolectric-قسمت دوم: آغاز

Robolectric Tool
Robolectric Tool

Robolectric با Gradle یا Bazel بهتر کار می‌کند. اگر شما یک پروژه جدید شروع  کرده‌اید، اول Gradle را توصیه می‌کنیم‌(از آنجایی که Gradle همان Build System انتخابی در Android Studio است) و دوم Bazel را. هر دو محیط پشتیبانی First Class برای Robolectric را ارائه می‌دهند. اگر از Build System دیگری استفاده می‌کنید، ببینید محیط‌های دیگر چگونه پیکربندی می‌شوند و یا چگونگی فراهم کردن پشتیبانی First Class Build System Integration برای محیط‌های دیگر را یاد بگیرید(طی جلسات آتی هم موضوع محیط‌ها دیگر و هم Build System Integration ارائه خواهند شد).

Building(ساخت) با Android Studio/Gradle

Robolectric با Android Studio و Android Gradle Plugin 3.2.1 یا جدیدتر بهتر کار می‌کند.

قسمت زیر را به ‘build.gradle’ خود بیفزایید:

android {
  testOptions {
    unitTests {
      includeAndroidResources = true
    }
  }
}

dependencies {
  testImplementation 'org.robolectric:robolectric:4.0.2'
}

این خط را به ‘gradle.properties’ اضافه کنید(دیگر به +Android Studio 3.3 نیاز نیست):


android.enableUnitTestBinaryResources=true

تست خود را با Robolectric test runner حاشیه‌نویس(Annote) کنید:


@RunWith(RobolectricTestRunner.class)
public class SandwichTest {
}

ساخت با Bazel

Robolectric با Bazel 0.10.0 یا بالاتر کار می‌کند. Bazel از طریق android_local_test’ rule’ با Robolectric یکپارچه یا Integrate می‌شود. Robolectric Java test code(کد تست جاوایی Robolectric) برای یک پروژه Bazel مانند یک پروژه جدید Gradle است.

Robolectic نیاز دارد به عنوان یک Dependency به پروژه Bazel شما اضافه شود. قسمت پایین را به Workspace File خود بیفزایید:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
 name = "robolectric",
 urls = ["https://github.com/robolectric/robolectric-bazel/archive/4.0.1.tar.gz"],
 strip_prefix = "robolectric-bazel-4.0.1",
 sha256 = "dff7a1f8e7bd8dc737f20b6bbfaf78d8b5851debe6a074757f75041029f0c43b",
)
load("@robolectric//bazel:setup_robolectric.bzl", "robolectric_repositories")
robolectric_repositories()

android_local_test rule را به Build File خود بیفزایید:


android_local_test(
  name = "MyTest",
  srcs = ["MyTest.java"],
  manifest = "TestManifest.xml",
  deps = [
    ":sample_test_lib",
    "@robolectric//bazel:robolectric",
  ],
)

android_library(
    name = "sample_test_lib",
    srcs = ["Lib.java"],
    resource_files = glob(["res/**"]),
    manifest = "AndroidManifest.xml",
)

محیط‌های دیگر

  • Buck
  • نسخه‌های Android Studio/Gradle قدیمی‌تر
  • Maven و Eclips

پروژه‌های نمونه

به نمونه‌های Robolectric نگاه کنید تا ببینید که چقدر سریع و آسان می‌تواند برای توسعه برنامه‌های آندروید “تست محور” باشد. علاوه بر این، پروژه‌های Starter از Maven و یا Gradle را Check out کنید.

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

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

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

Selenium

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

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

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

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