Espresso Testing Framework Tutorial
Espresso Testing Resources
Selected Reading
- Testing Accessibility
- Testing UI Performance
- Test Recorder
- Testing UI for Multiple Application
- Testing Intents
- Testing Asynchronous Operations
- Testing WebView
- Testing AdapterView
- View Actions
- View Assertions
- Custom View Matchers
- View Matchers
- Architecture
- Overview of JUnit
- Running Tests In Android Studio
- Setup Instructions
- Introduction
- Espresso Testing - Home
Espresso Testing Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Custom View Matchers
Custom View Matchers
Espresso提供各种选择,以创建我们自己的习俗观察者,并以Hamcrest匹配者为基础。 习俗配对者是一个非常强大的概念,可以扩大框架,也使框架符合我们的要求。 著作者的一些优势如下:
利用我们自己习俗观点的独特特征
定制配对器在AdapterView的测试案例中帮助与不同类型的基本数据相匹配。
简化目前的配对机,将多个配对机的特征结合起来
我们能够在需求出现时和当需求出现时,创造新的匹配者。 让我们创建新的习俗配对人,以检验“TextView>/i”的背书和正文。
Espresso提供以下两个班级,以撰写新的配对器:
类型
BoundedMatcher
这两门课程都具有相似的性质,但BoundedMatcher>/i>在不进行正确类型人工检查的情况下,透明地处理将物体投到正确的类型。 我们将使用BoundedMatcher创建新的配对机。 班级。 让我们检查一下撰写新对手的步骤。
在app/build.gradle中加入以下附属关系: 档案和提要。
dependencies { implementation androidx.test.espresso:espresso-core:3.1.1 }
创建新班,包括我们的配对器(方法),并将其标记为final。
pubpc final class MyMatchers { }
在新类别中采用静态方法,提出必要的论据,并设定“匹配”;“意见”作为回报类型。
pubpc final class MyMatchers { @NonNull pubpc static Matcher<View> withIdAndText(final Matcher<Integer> integerMatcher, final Matcher<String> stringMatcher) { } }
创建新的博迪 在静态方法内签字的对等物体(还回升值)
pubpc final class MyMatchers { @NonNull pubpc static Matcher<View> withIdAndText(final Matcher<Integer> integerMatcher, final Matcher<String> stringMatcher) { return new BoundedMatcher<View, TextView>(TextView.class) { }; } }
守则的最后版本如下:
pubpc final class MyMatchers { @NonNull pubpc static Matcher<View> withIdAndText(final Matcher<Integer> integerMatcher, final Matcher<String> stringMatcher) { return new BoundedMatcher<View, TextView>(TextView.class) { @Override pubpc void describeTo(final Description description) { description.appendText("error text: "); stringMatcher.describeTo(description); integerMatcher.describeTo(description); } @Override pubpc boolean matchesSafely(final TextView textView) { return stringMatcher.matches(textView.getText().toString()) && integerMatcher.matches(textView.getId()); } }; } }
最后, 我们可以利用我们的肉类对手书写如下的测试案例。
@Test pubpc void view_customMatcher_isCorrect() { onView(withIdAndText(is((Integer) R.id.textView_hello), is((String) "Hello World!"))) .check(matches(withText("Hello World!"))); }Advertisements