android学习笔记-Android Test 学习总结

文章标签: android
2016-3-15 15:01:53     人阅读    

用Android studio可以很方便的完成代码的测试工作,比之前在Eclipse里面做测试方便多了,下面简单总结一下: 
一、创建测试目录结构: 
一般在工程根目录下创建androidTest文件夹,里面按照src包名结构创建目录,然后就可以创建测试文件了,如图: 

也可以在module的build文件进行指定测试路径: 

Java代码  
  1. androidTest {  
  2.     java.srcDirs = ['androidTest/java']  
  3.     assets.srcDirs = ['androidTest/assets/']  
  4. }  


二、创建测试文件: 
新建XXXTest.Java,一般继承InstrumentationTestCase。 
里面方法命名要注意,测试用例必须要以test开头,如果你要控制执行顺序,需要在test后面加有序的数字或字母,在执行的时候会按命名顺序执行,如:test1Query(),test2Insert()等等; 

Java代码  
  1. public class UtilsTest extends InstrumentationTestCase {  
  2.   
  3.     public void test1() throws Exception {  
  4.         assertTrue(Utils.isValidUrl("http://www.qq.com"));  
  5.         assertTrue(Utils.isValidUrl("www.qq.com/news?a=1"));  
  6.         assertFalse(Utils.isValidUrl("http://*.qq.com"));  
  7.         assertTrue(Utils.isValidUrl("http://www.qq.com/?a=1"));  
  8.         assertTrue(Utils.isValidUrl("www.qq.com:80"));  
  9.         assertTrue(Utils.isValidUrl("http://www.qq.com:80/news"));  
  10.         assertTrue(Utils.isValidUrl("www.qq.com/news"));  
  11.         assertTrue(Utils.isValidUrl("ftp://www.qq.com/news"));  
  12.         assertTrue(Utils.isValidUrl("ftp://www.qq/news")); // We can't judge that whether the domain suffix is valid.  
  13.     }  
  14.   
  15.     public void test2() throws Exception {  
  16.         String[][] hosts =  
  17.                 {{"baidu.com""http://baidu.com/?v=1"},  
  18.                         {"qq.com""https://qq.com/?v=1"},  
  19.                         {"qq.com""ftp://qq.com/?v=1"},  
  20.                         {"qq.com:80""https://qq.com:80/?v=1"}  
  21.                 };  
  22.   
  23.         for (int i = 0; i < hosts.length; i++) {  
  24.             assertEquals(hosts[i][0], Utils.extractHost(hosts[i][1]));  
  25.         }  
  26.     }  
  27.   
  28.     public void test3() throws Exception {  
  29.         assertTrue(Utils.isValidRedirectUrl("http://www.qq.com"));  
  30.         assertTrue(Utils.isValidRedirectUrl("https://www.163.com"));  
  31.     }  
  32. }  


三、注意事项: 
如果要测试的接口里面有线程,一般以回调的方式展示,这时候要注意让测线程等待,否则测试主线程会提前退出,导致测试失败,可以用下面方法控制: 
Java代码  
  1. Object queryLock = new Object();  
  2.   
  3. private void waitProcessing(){  
  4.     try{  
  5.         synchronized (queryLock){  
  6.             queryLock.wait();  
  7.         }  
  8.     }catch (Exception e){  
  9.         e.printStackTrace();  
  10.     }  
  11. }  
  12.   
  13. private void notifyProcessing() {  
  14.     synchronized (queryLock) {  
  15.         queryLock.notify();  
  16.     }  
  17. }  


四、运行: 
运行整个测试用例,只需要在需要在文件上右键->run即可 
运行单个case,在对应的方法中点击,右键->run即可;


原文地址:http://www.itmmd.com/201603/763.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

  上一篇
下一篇  android 机顶盒开发总结
精彩回复
我要追加问题,请求站长解决!
姓名: