Android Studio 进行单元测试完整教程
来源:互联网 发布:js中鼠标点击图片放大 编辑:程序博客网 时间:2024/05/17 02:00
前言
- 为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作。
- 我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿。
我的AndroidStudio
我的AndroidStudio是2.0版本,但是进行单元测试应该很早的版本就可以了,至少可以追溯到1.0
注意事项
当你google查找AndroidStudio单元测试时,有大量的资料教程,但是都不完整,至少跟着教程一步步的是无法看到自己想看的效果的。AndroidStudio自带的单元测试功能是不需要修改gradle或者AndroidManifest.xml文件的。直接编写测试用例即可。
编写测试用例步骤
以下以一个由AndroidStudio一步步创建的全新工程为例
在src目录下会包含三个目录:
- androidTest.java.[包名]
main.java.[包名]
test.java.[包名]
- mian目录下为项目代码,androidTest目录下为编写Android测试用例使用,test目录下未编写Java测试用例使用。
gradle文件
- 增加
testCompile 'junit:junit:4.12'
用于Java编写执行Java测试用例。 - 现在这个不用自己手动加,默认就已经有了。
编写Java测试用例
import org.junit.Test;import static org.junit.Assert.*; /** * To work on unit tests, switch the Test Artifact in the Build Variants view. */public class ExampleUnitTest{private static final String TAG = "ExampleUnitTest"; @Testpublic void addition_isCorrect () throws Exception { assertEquals(4, 2,2); } }
测试用例的执行才是最关键的点
- 打开测试用例类,即上面的UnitTestActivity
- 在AndroidStudio的界面左侧边栏下部,有两个工具栏(Build Variants 和 Favorites)
- 点击 Build Variants,Test Artifact 选项框选择Unit Tests(同理跑Android测试用例选择Android Instrumentation Tests)
- 在AndroidStudio的界面做侧边栏上部有一个structure工具标签,(如果找不到,可以通过 工具栏–View–Tool Windows–Structure 打开此工具标签),打开此标签就可以看到此测试用例类的所有方法
- 鼠标选中要测的方法,右键–Run [方法名],即可进行Java用例测试。
编写Android测试用例
我在androidTest.java.[包名]文件夹中添加了一个类UnitTestActivityTest ,该类派生自**ActivityUnitTestCase<T>**
,并写了一个方法,完整代码如下:
package com.het.ctoiletglass;import android.content.Intent;import android.test.ActivityUnitTestCase;import android.test.suitebuilder.annotation.MediumTest;import android.widget.Button;import com.het.ctoiletglass.presenter.activity.test.UnitTestActivity;/** * @Author sunny * @Date 2016/6/17 13:33 * @Annotation */public class UnitTestActivityTest extends ActivityUnitTestCase<UnitTestActivity> { private Intent mUnitTestIntent; public UnitTestActivityTest() { super(UnitTestActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); mUnitTestIntent = new Intent(getInstrumentation().getTargetContext(), UnitTestActivity.class); } @MediumTest public void testLoginButton_labelTest() { startActivity(mUnitTestIntent, null, null); final Button loginBtn = (Button) getActivity().findViewById(R.id.unit_test_btn); final String showInfo = "登录单元测试"; loginBtn.performClick(); System.out.print("Btn上的字:"+loginBtn.getText().toString()); assertEquals("Btn上的字与期望的不一致",showInfo,loginBtn.getText().toString()); // 去判断是否为空,如果为空就说明跳转失败 assertNotNull("Intent was null", mUnitTestIntent); // 这一句是判断你在跳转后有没调finish() assertTrue(isFinishCalled()); }}
- 测试用例执行方法同Java测试用例,但是 Build Variants 的 Test Artifact 选项框一定要更改为 Android Instrumentation Tests。
- 注意事项,在android studio中,所有的测试代码必须以test-作为前缀,不然android studio无法识别它为测试代码。(以test为前缀的方法是高亮的,非test的前缀则不是,通过这一点也可以证明)
最后的话:
Build Variants的选择很重要,如果选择Unit Tests,Android的测试用例就会不被识别,反之Java的测试用例不被识别,所以在跑测试用例时一定选对标签,我就是在这里耗费了大量时间,偶然在stackoverflow上看到有人提了一句,感谢。
文章部分内容的编写参考了这个博客
官方测试用例教程在这里
2 0
- Android Studio 进行单元测试完整教程
- Android Studio 进行单元测试完整教程
- Android Studio 进行单元测试完整教程
- Android Studio 进行单元测试完整教程
- Android Studio 进行单元测试完整教程
- Android Studio 进行单元测试完整教程
- 基于Android Studio2.1.1 进行单元测试完整教程
- Android Studio进行单元测试
- Android Studio进行单元测试
- Android Studio进行单元测试
- Android studio进行单元测试
- Android Studio 进行单元测试
- Android studio进行单元测试
- android studio进行测试,单元测试
- 使用Android Studio进行单元测试
- 使用Android Studio进行单元测试
- 使用Android Studio进行单元测试
- 使用Android Studio进行单元测试
- Android仿IOS底部弹出选择菜单ActionSheet
- 图像文件格式与编码
- C++头文件和源文件
- GDAL:2.OGR空间参考
- NSTimer知识点和倒计时的实现
- Android Studio 进行单元测试完整教程
- Android的EditText中添加ImageButton
- 性能测试工具curl-loader二---测试分析
- javascript学习记录——canvas元素的基本操作
- AIDL自我提醒,错误小注意
- Java中的泛型
- 在CALayer中绘制图片解决图片倒立的三种方法
- 字符串左移包含问题
- Item 01:视C++为一个语言联邦