Show List

Configuring mock objects with Mockito

Configuring mock objects with Mockito involves specifying the behavior of a mock object when it is called. In other words, you are defining the responses that the mock object should give when its methods are called during a test. Here's an example of how to configure mock objects with Mockito:

Suppose you have the following interface for a UserService:

java
Copy code
public interface UserService { User getUserById(long userId); void addUser(User user); }

You want to create a mock object for this interface to use in your tests. Here's how you can create and configure the mock object:

java
Copy code
@Test public void testGetUserById() { // Create the mock object UserService userService = mock(UserService.class); // Configure the mock object to return a specific user when getUserById() is called with a specific ID when(userService.getUserById(1L)).thenReturn(new User("John", "Doe")); // Call the getUserById() method on the mock object User user = userService.getUserById(1L); // Verify that the method was called with the correct argument verify(userService).getUserById(1L); // Verify that the method returned the expected result assertEquals("John", user.getFirstName()); assertEquals("Doe", user.getLastName()); }

In this example, we create a mock object for the UserService interface using the mock() method provided by Mockito. We then configure the mock object to return a specific User object when its getUserById() method is called with an ID of 1L. We do this using the when() method, which takes the method call to be mocked and specifies the return value. We then call the getUserById() method on the mock object and verify that it was called with the correct argument using the verify() method. Finally, we verify that the method returned the expected result by asserting on the properties of the User object returned by the method.

Mockito provides many other methods for configuring mock objects, such as doAnswer(), doThrow(), and doNothing(), which allow you to specify more complex behaviors for your mock objects. These methods can be used to simulate various scenarios that your code might encounter during testing.


    Leave a Comment


  • captcha text