PowerMock ist expectNew() ist nicht lustig, einen Konstruktor als erwartet

Ich versuche zu lernen, die ins und outs der verschiedenen mocking-libraries und PowerMock(speziell die EasyMock-Erweiterung) steht als Nächstes auf der Liste. Ich bin versucht, zu verhöhnen, einen Konstruktor und die Beispiele nicht die gleiche Antwort, wenn ich versuche, Sie zu replizieren. Soweit ich sagen kann, es ist nie verhöhnt den Konstruktor und nur Erlöses, als wäre es normal.

Dies ist die test-Klasse:

@RunWith(PowerMockRunner.class)
@PrepareForTest({Writer.class})
public class FaultInjectionSituationTest {

    @Test
    public void testActionFail() throws Exception {
        FaultInjectionSituation fis = new FaultInjectionSituation();
        PowerMock.expectNew(Writer.class, "test")
           .andThrow(new IOException("thrown from mock"));
        PowerMock.replay(Writer.class);
        System.out.println(fis.action());
        PowerMock.verify(Writer.class);
    }

}

Habe ich versucht, anstelle der "test" mit einem EasyMock.isA(String.class), aber es lieferte die gleichen Ergebnisse.

Dies ist die FaultInjectionSituation:

public class FaultInjectionSituation {

    public String action(){
        Writer w;
        try {
            w = new Writer("test");
        } catch (IOException e) {
            System.out.println("thrown: " + e.getMessage());
            return e.getLocalizedMessage();
        }
        return "returned without throw";
    }
}

"Schriftsteller" ist nichts mehr als eine Hülle der Klasse:

public class Writer {
    public Writer(String s) throws IOException {
    }

    public Writer() throws IOException{
    }
}

Wenn der test ausgeführt wird, druckt es aus "zurück, ohne zu werfen", gibt die Ausnahme war nie geworfen.

InformationsquelleAutor AdamSpurgin | 2012-09-10

Schreibe einen Kommentar