测试NSXMLParserDelegate类

时间:2012-03-08 16:45:36

标签: objective-c ios xml ipad unit-testing

我已经实现了NSXMLParserDelegate协议,并且似乎已成功使用NSXMLParser解析XML。我正在解析的XML的XSD与100个左右的标签和属性相关,有时会得到相当深的嵌套。我正在从XML文档中的数据填充对象层次结构,到目前为止一切似乎都很顺利。

我的问题是,我该如何有效地测试这个?我的委托中有很多“if / else if”逻辑以及BOOL标志,用于跟踪我在被解析文档中的位置。在编写代表时我可以很容易地引入打字错误。

我最初的倾向是创建一个测试输入文档,该文档使用XSD中指定的所有元素和属性。解析后,我可以“NSLog()”插入对象层次结构中的所有内容,但这似乎过于劳动密集。

有没有更好的方法来思考这个问题,还是我只是卷起袖子和暴力呢?

1 个答案:

答案 0 :(得分:0)

您需要在此处查看使用单元测试。如果您可以生成一个(或多个)将导致已知数据结构的文件,您可以在单元测试中解析它们并验证数据结构是否符合您的预期。

我们使用我们为解析和生成管理的许多XML文件类型来做这件事(为了好玩,我们在另一个单元测试中将生成器的输出连接到解析器)。

关于从Apple设置Unit Tests有很多很好的背景信息,很多开源项目也使用单元测试。

使用这样的方案,您最终会编写一个比较器(或者使用isEqual:如果它适用于您的对象层次结构),那么您可以为每个测试重用它。添加一些XML文件并在单元测试中手动创建匹配的对象层次结构,然后就可以了。