浓缩咖啡 2.0
最近发布了Espresso 2.0,使其成为Android 支持库的一部分。这是在 android dev 博客上宣布的。
设置指南
他们还链接了更新的设置指南。在那里,您可以找到从头开始配置或更新现有 espresso 2.0 配置的说明。
其他提示
更改是以上 2 个链接包含您需要的所有信息。如果没有,我在下面列出了一些常见错误
将 Android Studio 升级到 1.0。*
首先升级您的 android Studio 版本。您应该能够从稳定的构建渠道(=默认)中获得至少 1.0。所以只需使用菜单选项Android Studio > Check for updates...。
要从最新消息中获取最新消息,您还可以进入首选项,搜索更新并将频道更改为canary 频道。
将 Android 支持库更新到 v 11+
Espresso 已包含在版本 11 的支持库中,因此您必须至少获得该版本。使用Android SDK 管理器检查更新。支持库位于底部的Extras树中。
新的依赖项和命名空间
如果从较旧的 espresso 版本升级,则必须更新依赖项和命名空间。对于新项目,只需将这些添加到dependencies
您的build.gradle
文件中。
dependencies {
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
}
而且由于命名空间发生了变化,您必须更新所有导入:
android.support.test.espresso
请注意,使用静态导入更容易。以一些常用的导入为例:
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription;
对于断言使用 hamcrest,再举一些例子:
import static org.hamcrest.Matchers.not;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.anyOf;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.startsWith;
import static org.hamcrest.Matchers.endsWith;
import static org.hamcrest.Matchers.equalToIgnoringCase;
import static org.hamcrest.Matchers.equalToIgnoringWhiteSpace;
仪表赛跑者
测试运行器需要build.gradle
在 defaultConfig 中的文件和用于从 Android Studio 启动测试的运行配置中进行配置。
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
并在您的运行配置中使用它作为检测运行器(仅限完整的类名):
android.support.test.runner.AndroidJUnitRunner
示例测试用例
以及一个要完成的示例测试用例。请注意,这MainActivity
是您要测试的活动。测试本身是以 test 开头的公共方法,testListGoesOverTheFold
如下例所示。
@LargeTest
public class HelloWorldEspressoTest extends ActivityInstrumentationTestCase2<MainActivity> {
public HelloWorldEspressoTest() {
super(MainActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
getActivity();
}
public void testListGoesOverTheFold() {
onView(withText("Hello world")).check(isDisplayed());
}
}
有关编写测试的更多信息,请访问 espresso 入门指南。