Android Assets之测试xml解析方法
2014-12-30 10:59
183 查看
Android Assets之测试xml解析方法
作者 喜力背景
App离不开与Server的网络交互,目前应用与服务器之间交互大多采用xml或者json的格式。本文可用作ut,测试客户端能否正确解析xml或json。当然你也可以模拟http return,不过如单纯为了测试解析方法或得到解析的数据可直接使用Assets。当然我们得预先准备好数据,至于Assets本文就不详细介绍,感兴趣的可以看下SDK的注解。
照例从代码开始讲解,以下代码主要实现Xml的解析:
public class ParserExampleActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public String parseXml(InputStream xml) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(new InputStreamReader(xml));
int eventType = parser.getEventType();
StringBuilder sb = new StringBuilder();
while (eventType != XmlPullParser.END_DOCUMENT) {
if (eventType == XmlPullParser.TEXT) {
sb.append(parser.getText());
}
eventType = parser.next();
}
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
这种xml解析实现的方法很多,后面的测试则是为了测试parseXml方法是否正确。
public class XMLParserTests extends ActivityInstrumentationTestCase2<ParserExampleActivity>{
private TextView tv;
public XMLParserTests() {
super(ParserExampleActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
Thread.sleep(5000);
super.tearDown();
}
@UiThreadTest
public final void testParserXml(){
ParserExampleActivity mActivity = getActivity();
tv = (TextView) mActivity.findViewById(R.id.textview01);
String result = null;
try {
InputStream myxml = getInstrumentation().getContext().getAssets().open(“myxml.xml”);
result = mActivity.parseXml(myxml);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(result);
assertNotNull(result);
tv.setText(result);
}
}
此处我为什么在UiThread运行,是因为加了这行代码tv.setText(result)。测试程序解析完xml,会把内容显示到一个TextView。 这里继承的是ActivityInstrumentationTestCase2,具体可以根据被测代码的情况来区别继承什么类型测试。内容很少,代码很多,大家细细消化一下。无论数据类型是什么,都可以使用Assets来测试,因为我们不需要关注数据类型。
相关文章推荐
- Android高手进阶教程(二十一)之---Android中创建与几种解析xml的方法!
- android xml 解析方法
- android中xml报文解析的两种方法dom树解析和xmlpull解析
- DOM解析XML,及Android应用联网升级的实现方法
- Android XML解析三种方法
- Android中XML解析模块的使用方法
- Android中创建与几种解析xml的方法
- Android高手进阶教程(二十一)之---Android中创建与几种解析xml的方法!
- Android开发之XML文件的解析的三种方法
- android layout XML解析错误的解决方法
- android下载xml解析 文件尾出现NUL 导致解析异常的解决方法
- Android进阶2之SAX方法解析XML
- Android SAX解析远程服务器端的xml,防止解析的时候出现空格或者标点符号再次解析的方法
- Android高手进阶教程(二十一)之---Android中创建与几种解析xml的方法! .
- Android高手进阶教程(二十一)之---Android中创建与几种解析xml的方法!
- android xml 解析通用方法
- Android 关于XML的解析和添加方法
- Android进阶2之SAX方法解析XML
- [置顶] Android进阶之SAX方法解析XML
- android用SAX解析xml文件时抛出org.apache.harmony.xml.ExpatParser$ParseException异常的解决方法