2013-01-18 1 views
1

Android Unit Test를 사용하여 단위 테스트를 실행했지만 Robolectric를 사용하여 Java Unit Test로 전환했습니다. SaxParser DefaultHandler 사용의 차이점을 발견했습니다. 기본적으로 Android sax 파서는 "localName"을 채 웁니다. 그러나 Java VM을 사용하는 Robolectric에서 실행할 때 localName은 비어 있으며 qname은 사용해야하는 값을 포함하고있는 것 같습니다. 여기 Robolectric : Android의 SAXParser와 Java의 robolectric의 SAXParser : 로컬 이름과 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); 
} 

누구나 다른 통지이 이상한 선두로부터는 또는 그것을 해결할 수 있습니까?

답변

1

xml을 구문 분석 할 때 SAXParserFactory를 네임 스페이스를 인식하도록 설정해보십시오.

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

이 플래그를 추가하면 Robolectric을 사용하여 단위 테스트를 실행할 때 유용합니다.

관련 문제