Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android JUnit和解析xml数据-测试什么_Android_Xml Parsing_Xmlpullparser_Junit3 - Fatal编程技术网

Android JUnit和解析xml数据-测试什么

Android JUnit和解析xml数据-测试什么,android,xml-parsing,xmlpullparser,junit3,Android,Xml Parsing,Xmlpullparser,Junit3,我试图获得更多关于JUnit及其在Android中使用的经验。 关于Android官方培训,我想知道是否有人能提供一个如何测试一些使用过的方法的例子 特别是如何测试StackOverflowXmlParser类中包含的方法以及loadXmlFromNetwork()和downloadUrl()[class NetworkActivity.java]关于单元测试,我能给你的最好建议是首先真正理解测试单元是什么。当我编写测试,特别是单元测试时,我确保我的测试单元是单个类。其他的一切都被嘲笑了,我的测

我试图获得更多关于JUnit及其在Android中使用的经验。 关于Android官方培训,我想知道是否有人能提供一个如何测试一些使用过的方法的例子


特别是如何测试StackOverflowXmlParser类中包含的方法以及loadXmlFromNetwork()和downloadUrl()[class NetworkActivity.java]

关于单元测试,我能给你的最好建议是首先真正理解测试单元是什么。当我编写测试,特别是单元测试时,我确保我的测试单元是单个类。其他的一切都被嘲笑了,我的测试确保类上的每个公共方法都实现了它所承诺的

也就是说,你所问的方法是。看到这样的代码来自谷歌工程师,有点令人震惊。我粗略的猜测是,它是一个前端web开发人员,因为变量都在方法的顶部声明,Javascript风格和每个局部变量的初始化都没有
null
值,这表明编写示例的人是谁

您必须对这些方法进行重大重构,以使它们进入可测试状态。例如,
loadXmlFromNetwork
提供了一个存在的API。它不是从网络上“加载”xml,而是将其解析为
列表
,完成后,它会将这些条目中的数据填充到HTML格式的字符串中,然后返回该字符串

仅此方法的第一个问题是,它在自身内部创建对象,而不是询问它需要什么。这给测试带来了一个问题,因为您无法模拟这些对象来测试逻辑。在测试中,您不需要建立网络依赖关系,因此您需要模拟
HttpURLConnection
并模拟行为来执行代码

为了给你指出正确的方向,请观看谷歌首席测试传道者的视频:


是的,但有时你不是决定要解析的格式文件的人,这篇文章的目的是在一个常见的场景中促进某人的JUnit(onAndroid)学习。对不起,Christopher,这不是因为你是google的朋友,但我知道,java中的局部变量必须初始化,你的链接()是指java字段(初始化字段是多余的)。除非您尝试在try/catch块之外使用它们的值,否则在使用局部变量之前不应声明/初始化它们。请参阅