2

以前はAndroidユニットテストを使用してユニットテストを実行していましたが、Robolectricを使用してJavaユニットテストに切り替えました。SaxParserDefaultHandlerの使用の違いに気づきました。基本的に、Android saxパーサーは「localName」にデータを入力しますが、Java VMを使用してRobolectricで実行すると、localNameは空になり、qnameには使用する必要のある値が含まれているようです。

これが私も参照している方法です:

import org.xml.sax.helpers.DefaultHandler;

public abstract class BaseParser extends DefaultHandler
{   
    @Override
    public abstract void startElement(String uri, String localName, String qName, Attributes attributes);
}

他の誰かがこの奇妙な出来事に気づいたり、それを修正することができますか?

4

1 に答える 1

3

xmlを解析するときは、SAXParserFactoryを名前空間対応に設定してみてください。

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);

Robolectricで単体テストを実行するときに、このフラグを追加するとうまくいきました。

于 2013-07-02T10:38:22.670 に答える