Android开发中的单元测试-初级教程(01)
16lz
2021-01-26
这里使用的环境是:Eclipse / Android / JUnit3,没办法,我试过了,Android目前貌似应该还无法支持JUnit4,所有的Test Case都必须继承于AndroidTestCase。好吧,反正JUnit 3也还比较容易理解。
新建一个Demo工程,注意同时建立一个AndroidTest Project(当然这个Test Project你也可以稍后建立)。
工程中添加我们的测试对象,并完成相应用来测试的方法:
package com.freesoft.demo.utils;/** * 被测试数学工具类 * @author Sandy * */public class MathUtil {/** * 加法方法 * @param num1, 操作数1 * @param num2, 操作数2 * @return 返回两数相加值 */public int add(int num1, int num2) {return num1 + num2;}/** * 减法方法 * @param num1, 操作数1 * @param num2, 操作数2 * @return 返回两数相减值 */public int sub(int num1, int num2) {return num1 - num2;}/** * 乘法方法 * @param num1, 操作数1 * @param num2, 操作数2 * @return 返回两数相乘值 */public int mul(int num1, int num2) {return num1 * num2;}/** * 除法方法 * @param num1, 操作数1 * @param num2, 操作数2 * @return 返回两数相除值 * @throws Exception 抛出的异常 */public int div(int num1, int num2) throws ArithmeticException {int result = 0;try {result = num1 / num2;} catch (ArithmeticException e) {throw e;};return result;}/** * 取余方法 * @param num1, 操作数1 * @param num2, 操作数2 * @return 返回两数取余值 */public int mod(int num1, int num2) {return num1 % num2;}}
之后,在我们的Test Project的Properties中,add library:JUnit,并选择JUnit3。
之后请检查Test Project中manifest.xml文件的Application小节中是否存在如下字段:
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="android.test.runner" /> </application>
之后右键需要测试的MathUtil类,选择new一个TestCase,并选择Source Folder到Test Project,同时选择是否需要setUp和tearDown方法等选项。
此时测试工具类如下:
/** * */package com.freesoft.demo.utils;import android.test.AndroidTestCase;/** * @author Sandy * */public class MathUtilTest extends AndroidTestCase {/* (non-Javadoc) * @see android.test.AndroidTestCase#setUp() */protected void setUp() throws Exception {super.setUp();}/* (non-Javadoc) * @see android.test.AndroidTestCase#tearDown() */protected void tearDown() throws Exception {super.tearDown();}/** * Test method for {@link com.freesoft.demo.utils.MathUtil#add(int, int)}. */public void testAdd() {fail("Not yet implemented");}/** * Test method for {@link com.freesoft.demo.utils.MathUtil#sub(int, int)}. */public void testSub() {fail("Not yet implemented");}/** * Test method for {@link com.freesoft.demo.utils.MathUtil#mul(int, int)}. */public void testMul() {fail("Not yet implemented");}/** * Test method for {@link com.freesoft.demo.utils.MathUtil#div(int, int)}. */public void testDiv() {fail("Not yet implemented");}/** * Test method for {@link com.freesoft.demo.utils.MathUtil#mod(int, int)}. */public void testMod() {fail("Not yet implemented");}}
右键工具类,选择Run as Android JUnit Test,运行正常,可以看到
至此,一个简单的Unit Test搞定。
更多相关文章
- Android悬浮按钮点击返回顶部FloatingActionButton
- Android(安卓)Camera从App层到framework层到HAL层的初始化过程
- android下载大图片避免OOM的解决方法
- Android底层开发之JNI编程
- Retrofit 2.0使用详解,配合OkHttp、Gson,Android最强网络请求框架
- Android中string.xml,动态改变数据方法
- 一行代码实现Android右滑返回
- android 滑动事件冲突解决 Touch事件处理机制
- 【Android(安卓)Developers Training】 79. 连接到网络