[Android学习笔记]使用Android Junit进行测试的注意事项

1.在AndroidManifest.xml中添加两处:

(1)

 <!-- 使用单元测试类库 -->
        <uses-library android:name="android.test.runner" />

这个要添加在<application>标签里面,在四大组件前面声明

(2)

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:label="niemi"
        android:targetPackage="com.gracker.androidtestproject" >
    </instrumentation>

这个在<application>标签外面写,注意name和targetPackage是必须的,而且需要注意的是targetPackage的内容是你应用程序的包名,和测试类无关。


2.写测试类

(1)单元测试方法需要声明微public类型

(2)单元测试方法的返回值类型为void

(3)按照JUnit3的规范要求单元测试方法的命名需要以test开头

(4)单元测试的方法必须是无参数的

(5)单元测试方法需要声明向单元测试框架抛出异常

(6)可以在setUp中做测试的初始化工作,比如打开数据库链接或者链接网络等

(7)可以在tearDown中做清理工作,如断开数据库链接或者网络等


3.由于单元测试的用例都是独立的,这就导致每次单元测试时都要实例化测试对象类,这样会代码重复。一个好的方法是在setUp中实例化测试对象。

4.如何测试private方法。使用正常方法测试private方法是不可以的,为了测试吧原方法修改为public也是不可取的,这里可以使用java的反射机制来测试private方法

比如有个private方法如下:

	private int add(int a ,int b)
	{
		return a+b;
	}

测试类可以这么写:

	public void  testAdd() throws Throwable{
		Calculator calculator = new Calculator(); //实例化add()方法所在的对象
		
		//获得要测试类的class字节码对象
		Class<Calculator> clazzClass = Calculator.class;
		
		//获得要调用的方法
		Method method = clazzClass .getDeclaredMethod("add", new Class[]{Integer.TYPE,Integer.TYPE});
		
		//设置可以访问私有方法
		method.setAccessible(true);
		
		//通过反射技术条用私有方法
		Object resObject =method.invoke(calculator, new Object[]{2,3}); //传入参数2和3

		//通过断言判断结果
		assertEquals(5, resObject);
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值