Android 的开发应该遵循以下原则
1>业务层代码( Android Junit )
2>先设计界面
3>设计 Activity
Android开发应该遵循 mvc 设计模式开发,所以我们先开发业务层代码,业务层是最复杂的一层,所以我们先要测试业务层,下面就以一个存储和读取文件的例子来说明测试的步骤
FileService .java
public class FileService {
/**
* 写入文件
* @param out
* @param string
* @throws Exception
*/
public static void write(OutputStream out, String string) throws Exception {
out.write(string.getBytes());
out.close();
}
/**
* 读取文件
* @param input
* @return
* @throws Exception
*/
public static String read(InputStream input) throws Exception {
StringBuffer sb = new StringBuffer();
int len = -1;
byte [] buffer = new byte [1024];
while ((len = input.read(buffer)) != -1) {
sb.append( new String(buffer, 0, len));
}
return sb.toString();
}
}
测试方法,测试方法继承 AndroidTestCase 类,此类应该和 activity在同一包中
public class FileServiceTest extends AndroidTestCase {
public void testWrite() throws Exception {
OutputStream outStream = this . mContext .openFileOutput( "wangpeng.txt" , Context. MODE_PRIVATE );
FileService. write (outStream, "wp love xmm" );
}
public void testRead() throws Exception {
InputStream input = this . mContext .openFileInput( "wangpeng.txt" );
String string = FileService. read (input);
System. out .println( "---------->" + string);
}
}
在 AndroidTestCase 类中提供了一个 content的上下文的对象,这样就可以得到输入流和输出流
需要注意的是,需要在配置文件中加上
< application android:icon = "@drawable/icon" android:label = "@string/app_name" >
< uses-library android:name = "android.test.runner" />
< activity android:name = ".FileActivity"
android:label = "@string/app_name" >
< intent-filter >
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
</ intent-filter >
</ activity >
</ application >
< instrumentation android:name = "android.test.InstrumentationTestRunner"
android:targetPackage = "com.wp.file.activity" android:label = "Tests for My App" />
这样就可以进行测试了