অ্যান্ড্রয়েডএক্স টেস্টের সাথে JUnit4 নিয়ম

AndroidX পরীক্ষায় AndroidJUnitRunner এর সাথে ব্যবহার করা JUnit নিয়মের একটি সেট অন্তর্ভুক্ত রয়েছে। JUnit নিয়মগুলি আরও নমনীয়তা প্রদান করে এবং পরীক্ষায় প্রয়োজনীয় বয়লারপ্লেট কোড হ্রাস করে। উদাহরণস্বরূপ, তারা একটি নির্দিষ্ট কার্যকলাপ শুরু করতে ব্যবহার করা যেতে পারে।

কার্যকলাপের দৃশ্যের নিয়ম

এই নিয়মটি একটি একক কার্যকলাপের কার্যকরী পরীক্ষা প্রদান করে। নিয়মটি @Test এর সাথে টীকা করা প্রতিটি পরীক্ষার আগে, সেইসাথে @Before এর সাথে টীকা করা যেকোনো পদ্ধতির আগে নির্বাচিত কার্যকলাপ চালু করে। নিয়মটি পরীক্ষা শেষ হওয়ার পরে কার্যকলাপ বন্ধ করে দেয় এবং সমস্ত পদ্ধতি @After ফিনিশ দিয়ে টীকা করা হয়। আপনার পরীক্ষার যুক্তিতে প্রদত্ত ক্রিয়াকলাপ অ্যাক্সেস করতে, ActivityScenarioRule.getScenario().onActivity() তে চালানোযোগ্য একটি কলব্যাক প্রদান করুন।

নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে আপনার পরীক্ষার যুক্তিতে ActivityScenarioRule অন্তর্ভুক্ত করতে হয়:

কোটলিন


@RunWith(AndroidJUnit4::class.java)
@LargeTest
class MyClassTest {
  @get:Rule
  val activityRule = ActivityScenarioRule(MyClass::class.java)

  @Test fun myClassMethod_ReturnsTrue() {
    activityRule.scenario.onActivity { … } // Optionally, access the activity.
   }
}

জাভা


public class MyClassTest {
    @Rule
    public ActivityScenarioRule<MyClass> activityRule =
            new ActivityScenarioRule(MyClass.class);

    @Test
    public void myClassMethod_ReturnsTrue() { ... }
}

সার্ভিস টেস্ট রুল

এই নিয়মটি পরীক্ষার আগে আপনার পরিষেবা চালু করার এবং আগে এবং পরে এটি বন্ধ করার জন্য একটি সরলীকৃত প্রক্রিয়া প্রদান করে। আপনি সাহায্যকারী পদ্ধতিগুলির একটি দিয়ে পরিষেবাটি শুরু বা আবদ্ধ করতে পারেন। পরীক্ষা শেষ হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় বা বন্ধ হয়ে যায় এবং @After দিয়ে টীকা করা যেকোন পদ্ধতি শেষ হয়ে যায়।

কোটলিন


@RunWith(AndroidJUnit4::class.java)
@MediumTest
class MyServiceTest {
  @get:Rule
  val serviceRule = ServiceTestRule()

  @Test fun testWithStartedService() {
    serviceRule.startService(
      Intent(ApplicationProvider.getApplicationContext<Context>(),
      MyService::class.java))
    // Add your test code here.
  }

  @Test fun testWithBoundService() {
    val binder = serviceRule.bindService(
      Intent(ApplicationProvider.getApplicationContext(),
      MyService::class.java))
    val service = (binder as MyService.LocalBinder).service
    assertThat(service.doSomethingToReturnTrue()).isTrue()
  }
}

জাভা


@RunWith(AndroidJUnit4.class)
@MediumTest
public class MyServiceTest {
    @Rule
    public final ServiceTestRule serviceRule = new ServiceTestRule();

    @Test
    public void testWithStartedService() {
        serviceRule.startService(
                new Intent(ApplicationProvider.getApplicationContext(),
                MyService.class));
        // Add your test code here.
    }

    @Test
    public void testWithBoundService() {
        IBinder binder = serviceRule.bindService(
                new Intent(ApplicationProvider.getApplicationContext(),
                MyService.class));
        MyService service = ((MyService.LocalBinder) binder).getService();
        assertThat(service.doSomethingToReturnTrue()).isTrue();
    }
}

অতিরিক্ত সম্পদ

অ্যান্ড্রয়েড পরীক্ষায় JUnit নিয়মগুলি ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন৷

ডকুমেন্টেশন

নমুনা