Usually, we unit tests the logics. An interface is without implementation details. A interface is just a binding a contract, but still, we can use Mockito to mock the interface, and test it.
For example, given the following simple Setter and Getter Interface:
interface GetAndSet {
void setValue(String name);
String getValue();
}
We can test it like this – thanks to the Mockito mocking framework in Java. We use doAnswer method to intercept the invokation of a interface method i.e. setter, then at the time, we mock the getter.
package com.helloacm;
import lombok.val;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;
interface GetAndSet {
void setValue(String name);
String getValue();
}
public class ExampleTest {
@Test
public void test_simple_getter_setter_interface() {
val instance = mock(GetAndSet.class);
doAnswer(invocation -> {
// or use invocation.getArgument(0);
val name = (String)invocation.getArguments()[0];
when(instance.getValue()).thenReturn(name);
return null;
}).when(instance).setValue(anyString());
instance.setValue("HelloACM.com");
assertEquals("HelloACM.com", instance.getValue());
}
}
If the method we are mocking is not void – we can use when. For example:
when(instance.getValue()).thenAnswer(innocation -> {
return "Hello";
});
–EOF (The Ultimate Computing & Technology Blog) —
Last Post: The Python Function to Retrieve the Producer Reward for Witness
Next Post: How to SSH to Remote Host using the Priviate/Public Keys Authentication?