Powermock (Mit Easymock) keine last call auf ein mock verfügbar

Ich versuche zu laufen, nur ein einfacher Testfall. Ich habe die folgende Methode.

public static void run(String[] args) throws Throwable {
    CommandLineArguments opts = CommandLineOptionProcessor.getOpts(args);
}

Ich werde auch weiterhin bauen diese Methode /test-Fall, wie ich gehen. Aber ich wollte nur sicherstellen, dass ein einfacher Testfall arbeitete zunächst. Also schrieb ich den folgenden test.

@Test
public void testRun() {
    String[] args = {"--arg1", "value", "--arg2", "value2"};

    mockStatic(CommandLineOptionProcessor.class);
    expect(CommandLineOptionProcessor.getOpts(args));

    EasyMock.replay(CommandLineOptionProcessor.class);
}

Danach erhalte ich die folgende Fehlermeldung:

java.lang.IllegalStateException: no last call on a mock available

Ich Lesen Sie einige der anderen Beiträge auf StackOverflow, aber Ihre Lösung scheint zu sein, dass Sie mit PowerMock mit Mockito. Ich bin mit Powermock und Easymock, so dass sollte nicht das problem sein.

Folgte ich Rene ' s Rat und fügte hinzu, die folgenden an der Spitze meiner Klasse.

@PrepareForTest(CommandLineOptionProcessor.class)
@RunWith(PowerMockRunner.class)
public class DataAssemblerTest {

Habe ich Fix die vorherigen Fehler. Aber jetzt habe ich diesen Fehler.

java.lang.IllegalArgumentException: Not a mock: java.lang.Class
at org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:61)
at org.easymock.EasyMock.getControl(EasyMock.java:2172)
at org.easymock.EasyMock.replay(EasyMock.java:2074)
.
.
.

Irgendwelche Ideen auf, was könnte die Ursache sein wäre toll.

  • Verwenden Sie maven?
  • Nein. Ich bin derzeit nicht mit Maven.
  • Ich habe das Problem mit dem JavaAssist. Stellt sich heraus, ich hatte einfach nicht die Bibliothek in das Projekt. So, dass ist jetzt gut. Aber ich habe jetzt das neue Problem, der sagt, 'Nicht verspotten'.
  • Ich aktualisierte die Antwort
Schreibe einen Kommentar