我已經實現了NSXMLParserDelegate協議,並且似乎成功地使用NSXMLParser解析了XML。我正在解析的XML的XSD與100個左右的標籤和屬性相當相關,它們有時可以相當深地嵌套。我正在從XML文檔中的數據中填充對象層次結構,並且目前爲止似乎都很順利。測試NSXMLParserDelegate類
我的問題是,我如何有效地測試這個?在我的委託中有很多「if/else if」邏輯,以及BOOL標誌可以跟蹤我在解析文檔中的位置。在寫代理時,我可以很容易地引入印刷錯誤。
我最初的傾向是創建一個使用XSD中指定的所有元素和屬性的測試輸入文檔。一旦它被解析,我就可以「NSLog()」插入到對象層次結構中的所有東西,但這似乎太勞力密集了。
有沒有更好的方法來思考這個問題,還是我只是捲起袖子蠻橫逼迫它呢?
我花了最後一週將我的委託重構爲具有表示xsd中元素關係的父/子關係的數據類型類層次結構。不再有BOOL或if/else - 如果邏輯樹。現在我可以將這些類表示的數據類型基於xsd連接在一起。我還爲類實現的協議添加了printContents方法。 printContents方法將存儲在對象中的數據輸出爲適當的XML,然後調用其子對象來執行相同操作。我能夠使用輸出作爲輸入,並在一些修復後,得到兩者匹配。 – 2012-03-16 06:52:33