第一行代码笔记7:调试和日志

一、定义自己的日志工具
1、问题

项目上线后用于调试的日志信息还会被打印,这样不仅降低程序运行效率,还可能将一些机密性的数据泄露出去。

2、解决方案

自由控制日志打印,使得开发阶段就打印,上线之后就屏蔽。

public class LogUtil {
	public static final int VERBOSE = 1;
	public static final int DEBUG = 2;
	public static final int INFO = 3;
	public static final int WARN = 4;
	public static final int ERROR = 5;
	public static final int NOTHING = 6;
	public static final int LEVEL = VERBOSE;
	public static void v(String tag, String msg) {
		if (LEVEL <= VERBOSE) {
			Log.v(tag, msg);
		}
	}
	public static void d(String tag, String msg) {
		if (LEVEL <= DEBUG) {
			Log.d(tag, msg);
		}
	}
	public static void i(String tag, String msg) {
		if (LEVEL <= INFO) {
			Log.i(tag, msg);
		}
	}
	public static void w(String tag, String msg) {
		if (LEVEL <= WARN) {
			Log.w(tag, msg);
		}
	}
	public static void e(String tag, String msg) {
		if (LEVEL <= ERROR) {
			Log.e(tag, msg);
		}
	}
}
开发阶段将LEVEL设为VERBOSE级别,即可打印所有日志;发布阶段将LEVEL设为NOTHING级别,即可屏蔽所有日志信息。

二、调试
1、更便捷的进入调试模式

1)运行项目:Run As->Android Application启动程序。

2)打开DDMS试图:运行到需要调试的地方,然后进入DDMS试图,在Devices窗口中可看到我们正在运行的进程。

3)进入调试模式:选中我们要调试的进程,然后点击最上面一行的第一个按钮,就会让这个进程进入到调试模式了。进入调试模式后的进程名前会有一个虫子样式图标。


2、编写测试用例

1)是什么:测试用例就是一段普通的代码,通常带有期望的运行结果的,测试者可以根据最终的运行结果来判断程序是否能正常工作。

2)适用场景:当你正在维护一个很庞大的程序,某天,领导让你对其中一个功能进行修改,难度不高,你很快解决了,并且测试通过。几天后,突然有人发现其他功能出了问题,最终定位出的原因竟然是你之前修改过的那个功能所导致的。所以,当项目庞大时,一般应该去编写测试用例。如果我们给项目的每个功能都编写了测试用例,每当修改或新增任何功能之后,就将所有测试用例都跑一遍,只要有任何测试用例没通过,就说明修改或新增这个功能影响到现有功能了。

3)编写测试用例

a.创建测试工程

测试工程通常不是独立存在的,而是依赖于某个现有工程。

File->New->Other打开一个对话框,展开Android目录,在里面选中Android Test Project;然后点击Next,输入测试工程的名字,并选择测试工程的路径;最后,选择要为哪个项目创建测试功能。

生成的AndroidMainfest.xml文件中这些代码都是自动生成的,用来表明这是一个测试工程。

</pre><pre name="code" class="java"><instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.zzz" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>

b.进行单元测试

单页测试是指对软件中最小的功能模块进行测试。

新建测试类,继承AndroidTestCase(自然可以定义多个测试类,最好跟要被测试的项目一一对应)

public class MainActivityTest extends ActivityTestCase {

	public void testOnCreate(){
		assertEquals(true, true);
		System.out.println("--33");
		assertEquals(false, true);
	}
	
	@Override
	protected void setUp() throws Exception {
		super.setUp();
	}
	
	@Override
	protected void tearDown() throws Exception {
		super.tearDown();
	}
}
setUp()在所有的测试用例执行之前调用,可在这里执行一些初始化操作。tearDown()会在所有的测试用例执行之后调用,可在这里进行一些资源的释放操作。

如何编写测试用例呢?只需定义一个以test开头的方法,测试框架就会自动调用这个方法了。然后我们在这个方法中通过断言(assert)的形式来期望一个运行结果,再和实际结果进行对比,这样一条测试用例就编写完了。

最后在测试工程中->Run As->Android JUint Test来运行这个测试用例。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值