Heim > Java > javaLernprogramm > Wie kann man Void-Methoden in Mockito effektiv simulieren?

Wie kann man Void-Methoden in Mockito effektiv simulieren?

Linda Hamilton
Freigeben: 2024-12-25 03:39:08
Original
505 Leute haben es durchsucht

How to Mock Void Methods in Mockito Effectively?

Verspotten von Void-Methoden mit Mockito

Das Verspotten von Void-Methoden in Mockito kann mithilfe von Methoden aus doThrow(), doAnswer() und doNothing erreicht werden () und doReturn() Familien. Mit diesen Methoden können Sie das Verhalten für eine simulierte Methode angeben, die den Rückgabetyp „void“ hat.

Beispiel:

// Mock a void method that throws an exception
Mockito.doThrow(new Exception()).when(instance).methodName();

// Mock a void method that performs some action
Mockito.doAnswer(new Answer<Void>() {
    public Void answer(InvocationOnMock invocation) {
        Object[] args = invocation.getArguments();
        System.out.println("called with arguments: " + Arrays.toString(args));
        return null;
    }
}).when(instance).methodName();
Nach dem Login kopieren

In Ihrem spezifischen Beispiel können Sie die verspotten setState()-Methode in der World-Klasse wie folgt:

// Mock the World class
World mockWorld = mock(World.class); 

// Mock the setState method to print the arguments passed to it
doAnswer(new Answer<Void>() {
    public Void answer(InvocationOnMock invocation) {
        Object[] args = invocation.getArguments();
        System.out.println("called with arguments: " + Arrays.toString(args));
        return null;
    }
}).when(mockWorld).setState(anyString());
Nach dem Login kopieren

Wenn Sie nun „mockWorld.setState()“ in Ihrem Test aufrufen, wird die bereitgestellte Die Antwort wird ausgeführt, sodass Sie überprüfen können, ob die richtigen Argumente an die Methode übergeben wurden.

Das obige ist der detaillierte Inhalt vonWie kann man Void-Methoden in Mockito effektiv simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage