Ich habe Mühe, diese seltene Kombination zu bekommen, aber ich habe kein Glück. Mein Projekt verwendet JUnit + Mockito + Robolectric für Tests und Roboguice für die Injektion, als ich PowerMock zu der Gleichung hinzugefügt habe, sind seltsame Dinge passiert, das sind einige der Dinge, die ich ausprobiert habe:
1.- Out of the Box PowerMock + Mockito + Robolectic Integration. Wie auf PowerMockIngration vorgeschlagen, habe ich ein @PowerMockRunnerDelegate
hinzugefügt, um meinen benutzerdefinierten Runner einzuschließen, der von RobolectricGradleTestRunner
ausgeht. :
Build.gradle
%Vor%Test
%Vor%Ergebnis:
%Vor% So wie @PrepareForTest
funktioniert nicht, dann habe ich versucht, wenn eine Regel ein Klassenlader, wie in der gleichen Anleitung vorgeschlagen:
Build.gradle
%Vor%Testklasse
%Vor% An diesem Punkt ist der Test bestanden und ich konnte RoboGuice wie erwartet verspotten, aber wenn ich alle meine Testfälle zusammen laufen lasse, bekomme ich die folgende Ausnahme, wenn ich einen einfachen Mock wie mock(OtherClass.class)
:
Also habe ich viele Varianten ausprobiert: Entfernen Sie den Xtream-Klassenlader:
%Vor%Benutzer JunitAgent:
%Vor%Ich habe also keine Ideen mehr, oder?
Ich hatte das gleiche Problem.
Meine Lösung war:
Entfernen Sie testCompile "org.powermock:powermock-module-junit4-rule-agent:x.x.x"
von der Großschrift
Ändern Sie import static * .Mockito.mock und * .Mockito.when in org.powermock.api.mockito.PowerMockito.mock
und org.powermock.api.mockito.PowerMockito.when
.
Tags und Links android robolectric roboguice junit powermockito