2

我曾经使用 Android 单元测试运行单元测试,但使用 Robolectric 切换到 Java 单元测试。我注意到使用 SaxParser DefaultHandler 的不同之处。基本上,Android sax 解析器会填充“localName”,但是当使用 Java VM 在 Robolectric 下运行时,localName 为空,并且 qname 似乎包含我应该使用的值。

这也是我引用的方法:

导入 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 回答