使用 Espresso 实现完整覆盖的功能测试(7)

发表于:2017-04-20来源:Ohmer作者:Ohmer点击数: 标签:功能测试Espresso
理论上这里进行的异步操作应该和 App 里面执行的异步操作是一样的,可以用 IdlingResource 去守护这样一个后台操作,但是实际使用下来,虽然 IdlingResourc

理论上这里进行的异步操作应该和 App 里面执行的异步操作是一样的,可以用 IdlingResource 去守护这样一个后台操作,但是实际使用下来,虽然 IdlingResource 已经接受到对应的异步完成回调,但是并没有回调到被注册的 ResourceCallback。

hasProperty 异常

Espresso 用的是 Hamcrest 的语法来进行的验证,理论上应该支持所有 Hamcrest 的写法,但是当我们在使用 hasProperty 这个方法的时候,会发现下面这样的错误。这主要是由于 Android SDK 里面并没有完整 JDK 的库,我们用到这部分刚好在 Android SDK 没有。


					
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

					
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/beans/Introspector;
at org.hamcrest.beans.PropertyUtil.propertyDescriptorsFor(PropertyUtil.java:47)
at org.hamcrest.beans.PropertyUtil.getPropertyDescriptor(PropertyUtil.java:28)
at org.hamcrest.beans.HasPropertyWithValue.propertyOn(HasPropertyWithValue.java:94)
at org.hamcrest.beans.HasPropertyWithValue.matchesSafely(HasPropertyWithValue.java:81)
at org.hamcrest.TypeSafeDiagnosingMatcher.matches(TypeSafeDiagnosingMatcher.java:55)
at org.hamcrest.core.AllOf.matches(AllOf.java:27)
at org.hamcrest.DiagnosingMatcher.matches(DiagnosingMatcher.java:12)
at android.support.test.espresso.action.AdapterDataLoaderAction.perform(AdapterDataLoaderAction.java:83)
at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction.java:144)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)

原文转自:http://ohmerhe.com/2017/04/18/espresso_huge_ui_test/

...