赞
踩
引入依赖
android {
defaultConfig {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
Java代码测试
package com.android.myapplication;
import org.junit.Test;
import static org.junit.Assert.*;
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
点击被Test标注的方法,左侧的运行按钮,就可以执行测试任务
AndroidUI测试
package com.android.myapplication; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.matcher.ViewMatchers.withId; import android.content.Context; import androidx.test.platform.app.InstrumentationRegistry; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.rule.ActivityTestRule; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Rule public ActivityTestRule<MainActivity> activityTestRule = new ActivityTestRule(MainActivity.class, true); @Test public void useAppContext() { //验证包名是否正确 Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); Assert.assertEquals("com.android.myapplication", appContext.getPackageName()); //模拟点击事件 onView(withId(R.id.fab)).perform(click()); //启动Activity activityTestRule.getActivity(); } }
点击被Test标注的方法,左侧的运行按钮,就可以执行测试任务
查看测试报告
测试任务执行完毕,会在app/build/reports目录下生成测试报告
报告会统计所有测试任务的执行结果,已经通过率
注意事项
Android单元测试,特别是Espresso框架,依赖于Gradle插件和SDK版本
Gradle插件版本不兼容,SDK版本不兼容,手机不支持时,单元测试都可能会执行失败
可能会遇到的意外比较多,如果不幸遇坑,需要靠自己去耐心尝试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。