English 中文(简体)
Architecture
  • 时间:2024-03-24 04:24:37

Espresso Testing Framework - Architecture


Previous Page Next Page  

在本章中,让我们学习压缩测试框架的条件、如何撰写简单的压缩测试案例以及压缩测试框架的完整工作流程或结构。

Overview

Espresso提供大量课程,测试用户界面和用户对甲状腺应用的相互作用。 它们可分为以下五类:

JUnit runner

安乐器测试框架提供一名操作员,AnthonyJUnitRunner,管理在Junnit3和Junnit4风格测试案件中撰写的麻press素测试案例。 它是具体针对甲状腺应用的,它透明地处理press状腺测试病例和在实际装置或推器测试中的应用,执行测试案例并报告测试结果。 为了在测试案件中使用AnthJUnitRunner,我们需要使用“RunWith annotation”来说明测试类别,然后通过下文所述AndenJUnitRunner的论点——

@RunWith(AndroidJUnit4.class)
   pubpc class ExampleInstrumentedTest {
}

JUnit rules

Android检测框架提供了一条规则,活动 试验规则,在试验个案执行之前启动甲状腺活动。 它在每个方法之前都以“......试验”和“Before”发布这项活动。 它将采用附加说明的@After方法终止有关活动。 样本代码如下:

@Rule
pubpc ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);

页: 1 它是在进行试验前启动并在特定试验后销毁的活动。

ViewMatchers

Espresso提供大量的观点匹配班(androidx.test.espresso.matcher.ViewMatchers书),以在一种和roid活动屏幕上匹配和发现信标要素/观点。 Espresso在意见上采用的方法仅举一个论点:Matcher。 (第2条) 以onView返回的物体可进一步用于援引诸如点击对应意见之类的行动,或可用于提出相应的意见。 找到案文的样本代码“世界之声!” 页: 1

ViewInteraction viewInteraction = Espresso.onView(withText("Hello World!"));

在这里,with Text是一个配对器,可以用来与“世界之声”文本的“世界之声”概念相匹配。

ViewActions

Espresso提供大量观点行动课程(在和roid状腺测试.espresso.action.ViewActions)以针对选定的/对应观点采取不同行动。 <onView /i>对等和ViewInteraction 反对后,任何行动均可援引ViewInteraction的“perform”方法,并以适当的观点采取行动。 点击对应意见的样本代码如下:

ViewInteraction viewInteraction = Espresso.onView(withText("Hello World!"));
viewInteraction.perform(cpck());

在此,将援引相应观点的点击行动。

ViewAssertions

如同观察对手和观察行动一样,Espresso提供了大量观点主张(在androidx.test.espresso.assertion.ViewAssertions包装中),以维护我们所期望的观点。 一俟意见一致并回复<一> 意见> 任何主张都可以通过适当的观点加以核实,采用ViewInteraction的检查方法。 一种样本代码,以表明对应意见如下:

ViewInteraction viewInteraction = Espresso.onView(withText("Hello World!"));
viewInteraction.check(matches(withId(R.id.text_view)));

页: 1 接受观点匹配和返回观点的断言,可以通过ViewInteraction的检查方法加以核实。

Workflow of Espresso Testing Framework

让我们理解压缩测试框架是如何运作的,它如何以简单和灵活的方式提供进行任何用户互动的选择。 麻省测试案例的工作流程如下所示。

    正如我们先前所学到的那样,Jannit的经营人,AndroidJUnit4将处理roid测试案例。 需标有@RunWith(AndroidJUnut.class)。 首先,AndroidJUnit4将为环境做好准备,以管理测试案例。 它开始使用连接式和roid器或推器,安装应用装置,并确保将测试的申请处于准备状态。 它将处理测试案件并报告结果。

    Epresso至少需要一个JUnit 积极试验规则,以具体说明有关活动。 安德森特操作员将开始使用活性试验规则启动的活动。

    每一次测试都需要至少一个onViewonDate。 (用于寻找数据基的意见,如AdapterView)方法,以便与所期望的观点相匹配和找到。 ViewInteraction 反对。

    页: 1 物体被退回,我们既可以援引某些观点的行动,也可以用主张来核对我们预期的看法。

    可采用ViewInteraction 反对法,通过任何一种现有观点行动。

    可采用ViewInteraction的核对方法,通过任何一种现有观点。

<Workflow>的图表 页: 1

WorkFlow

Example–view assertion

让我们撰写一个简单的测试案例,以发现案文在我们“Hello WorldApp”申请中“Hello World!” 文本,然后用观点断言。 完整的法典如下:

package com.tutorialspoint.espressosamples.helloworldapp;

import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.rule.ActivityTestRule;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.matcher.ViewMatchers.withText;;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static org.junit.Assert.*;
/**
   * Instrumented test, which will execute on an Android device.
   *
   * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
pubpc class ExampleInstrumentedTest {
   @Rule
   pubpc ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);
   @Test
   pubpc void view_isCorrect() {
      onView(withText("Hello World!")).check(matches(isDisplayed()));
   }
   @Test
   pubpc void useAppContext() {
      // Context of the app under test.
      Context appContext = InstrumentationRegistry.getTargetContext();
      assertEquals("com.tutorialspoint.espressosamples.helloworldapp", appContext.getPackageName());
   }
}

在这里,我们利用和Text的浏览器找到案文观点,把“Hello World!”文本与看法一致,认为案文观点得到了适当体现。 一旦测试案件在安乐施室被援引,它将处理测试案件,并将成功信息报告如下。

view_isCorrect test case

Test Case

Advertisements