私はNSXMLParserDelegateプロトコルを実装しており、NSXMLParserでXMLを正常に解析するようです。私が解析しているXMLのXSDは100個ほどのタグと属性にかなり関わっており、時にはかなり深くネストすることができます。私は、XMLドキュメントのデータからオブジェクト階層を作成しており、すべてこれまでうまくいっているようです。NSXMLParserDelegateクラスのテスト
私の質問は、効果的なテスト方法です。デリゲートには、 "if/else if"ロジックだけでなく、BOOLフラグもあり、ドキュメント内のどこにあるのかを把握することができます。デリゲートを書くときに私は簡単に誤植を導入することができました。
私の最初の考えは、XSDで指定されたすべての要素と属性を使用するテスト入力ドキュメントを作成することです。パースされると、オブジェクト階層に挿入されたすべての "NSLog()"を実行できますが、それはあまりにも労力がかかるようです。
この問題を考える良い方法はありますか、それとも私の袖を巻き上げて、それを強制するのでしょうか?
私は先週、デリゲートをxsdの要素関係を表す親子関係を持つデータ型クラスの階層にリファクタリングしました。 BOOLやif/else-ifの論理ツリーはこれ以上ありません。私は今、これらのクラスがxsdに基づいて表すデータ型を結びつけることができます。また、クラスが実装するプロトコルにprintContentsメソッドを追加しました。 printContentsメソッドは、オブジェクトに格納されているデータを適切なXMLとして出力し、その子オブジェクトを呼び出して同じことを行います。私は入力として出力を使用することができましたし、いくつかの修正の後、両方が一致するようになりました。 –