我曾经使用Android Unit Test运行我的单元测试,但是使用Robolectric切换到Java Unit Test。我注意到使用SaxParser DefaultHandler有所不同。基本上,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);
}
其他人是否注意到这种奇怪的现象或者可以修复它?
答案 0 :(得分:2)
解析xml时,请尝试将SAXParserFactory设置为可识别名称空间。
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
在使用Robolectric运行单元测试时,添加此标志对我来说效果很好。