引入依赖
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版本不兼容,手机不支持时,单元测试都可能会执行失败文章来源:https://www.toymoban.com/news/detail-667952.html
可能会遇到的意外比较多,如果不幸遇坑,需要靠自己去耐心尝试文章来源地址https://www.toymoban.com/news/detail-667952.html
到了这里,关于【Android】JUnit和Espresso单元测试新手快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!