Nicht in der Lage zu verspotten statische Methoden mit Powermock (mit EasyMock)

Möchte ich simulieren Sie eine statische Methode und auch nicht-statische Methoden einer Klasse.
Meine Quelle sieht so aus:

    public class XDSUtilityManager
    {
        private static XDSUtilityManager xdsUtilMgr = new XDSUtilityManager();
        private XDSUtilityManager()
        {
            xdsUtilMgrImpl = new XDSUtilityManagerImpl();
        }
        public static XDSUtilityManager getInstance()
        {
            return (xdsUtilMgr == null ) ? new XDSUtilityManager() : xdsUtilMgr;
        }
        public XMLDocument getXMLDocument(final String absoluteKey, final XDSClient xdsClient)
        {
            return getXMLDocument(absoluteKey, xdsClient, false);
        }
    }

Ich möchte mock statische Methode getInstance(). Ich will getInstance (), um mock-Objekt der XDSUtilityManager Klasse. Auch ich möchte mock getXMLDocument() die ist nicht statisch.

Und in meinem Testfall habe ich versucht Folgendes:

XMLDocument xmlDocument = PowerMock.createMock(XMLDocument.class);
XDSUtilityManager xdsUtilityManager  = PowerMock.createPartialMock(XDSUtilityManager.class,"getXMLDocument");
PowerMock.mockStaticPartial(XDSUtilityManager.class, "getInstance");
expect(XDSUtilityManager.getInstance()).andReturn(xdsUtilityManager).anyTimes();
expect(xdsUtilityManager.getXMLDocument((String)anyObject(), anyObject(XDSClient.class))).andReturn(xmlDocument).anyTimes();
PowerMock.replay(xdsUtilityManager);
PowerMock.replay(xmlDocument);

 

 

Aber die Dinge sind nicht wie erwartet funktioniert. Bitte helfen Sie

InformationsquelleAutor Ramesh | 2013-02-05

Schreibe einen Kommentar