Prise en charge des méthodes statiques simulées à partir de la version 3.4 de Mockito. Cela élimine le besoin d'installer PowerMock si vous souhaitez simplement simuler des méthodes statiques.
En plus du pot ci-dessus, vous aurez besoin de nouveaux mockito-inline
et byte-buddy-agent
.
Vous pouvez les télécharger depuis Site officiel Mockito et Site officiel ByteBuddy, respectivement.
version | |
---|---|
java | 8 |
JUnit | 5 |
Contient des méthodes statiques.
public class MockedClass {
public static String methodA() {
return "val1";
}
public static String methodB() {
return "val2";
}
public static String methodC(String str) {
return str;
}
}
public class MockedClassTest {
@Test
public void test() throws Exception {
//Valeur attendue
String expected_methodA = "test";
String expected_methodB = "val2";
//Se moquer de la classe cible
MockedStatic<MockedClass> mocked = Mockito.mockStatic(MockedClass.class);
//Définir une valeur de retour et en faire un stub
mocked.when(MockedClass::methodA).thenReturn(expected_methodA);
//Quand pas stub
mocked.when(MockedClass::methodB).thenCallRealMethod();
//Courir
String actual_methodA = MockedClass.methodA();
String actual_methodB = MockedClass.methodB();
//Vérifiez le résultat
assertEquals(expected_methodA, actual_methodA);
assertEquals(expected_methodB, actual_methodB);
}
}
Pour se moquer de Mockito.mockStatic ()
ThenReturn ()
pour définir la valeur de retour
Si vous voulez appeler la chose réelle sans définir la valeur de retour, thenCallRealMethod ()
Vous pouvez utiliser.
Dans l'exemple de code, il est spécifié par la référence de méthode comme «MockedClass :: methodA», mais la méthode de description lorsqu'il y a un argument est la suivante.
mocked.when(() -> { MockedClass.methodC(Mockito.anyString()); })
.thenReturn("stub");
Vous pouvez spécifier any () de Mockito dans la liste d'arguments. Bien entendu, l'expression lambda est valide même en l'absence d'argument. {} Peut être omis selon la règle de description d'expression lambda.
mocked.when(() -> MockedClass.methodA())
.thenReturn("stub");
Recommended Posts