Android项目如果每次都整个调试的话,要加载UI,会等很长时间。所以单元测试就显得很方便了。
要进行单元测试,首先得修改下AndroidManifest.xml文件。在Instrument标签里点右侧的Add按钮。然后在弹出的窗口双击 Instrument。然后在右侧就会多出一些东西赖。先选择第二行的Target package 的Browse……,选择要测试的包。或者要测试的类所属的包。我这里选的事 com.example.scrollview 包,然后再选择第一行 Name 后的Browse ,可能会搜索一会儿,然后下面就会有一个 “android.test.InstrumentationTestRunner” 选中它,然后保存AndroidMenifest.xml。
然后打开AndroidMenifest.xml的标签,发现在 Application标签上面多了一行 如下的代码
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.scrollview"></instrumentation>
要想进行单元测试还得加些东西,是在 Application里面,加入如下一行 。
<uses-library android:name="android.test.runner"/> 其中android:name 的值可以用 Alt+/来让Eclipse帮你自动补充进去。
接下来就要写测试代码了。
在刚才选的包下面建一个测试类,也可以是这个包的子包里。这个测试类要继承 AndroidTestCase 比如MyTest 在他的类里面可以写测试方法。完成后,右击方法名,选择run as=》Android JUnit Tset。也可以进行调试,选好断点后,右击方法名,选择 debug as =》 Android JUnit Tset
package com.example.scrollview.test;import org.apache.http.client.HttpClient; import org.apache.http.protocol.HTTP;import com.example.scrollview.utils.HttpUtil;import android.test.AndroidTestCase; import android.text.Html; import android.util.Log;public class MyTest extends AndroidTestCase {String testUrl = "http://192.168.1.2/post.php?key=name";String params = "name=xiaoming&weight=78";public void testHttpGet() {String message = HttpUtil.sendGetMethod(testUrl, params, HTTP.UTF_8);Log.d("shang", "testHttpGet:" + Html.fromHtml(message));}public void testHttpPost() {String message = HttpUtil.sendPost(testUrl, params, HTTP.UTF_8);Log.d("shang", "testHttpPost:" + Html.fromHtml(message));} }
这个要求连上手机,或者有模拟器,但实际上不会调用UI,所以还是很快的,更主要的是他可以独立的测试一个类或方法。