DEV Community

eidher
eidher

Posted on

Testing with Mockito

1) Register MockitoExtension

@ExtendWith(MockitoExtension.class)
class ObjectTest {
    static final Long ID = 1L;
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

2) Create the mock

    @Mock
    private ObjectRepo mockRepo;
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

3) Inject the mock

    @InjectMocks
    private ObjectService objectService;

    @Test
    void whenfindByIdThenReturnResult() {
        var objectDAO = new ObjectDAO();
        objectDAO.setId(ID);
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

4) Define the behavior

        when(mockRepo.findById(any(Long.class))).thenReturn(Optional.of(objectDAO));
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

5) Test

        var result = ObjectService.findById(ID);
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

6) Verify

        verify(mockRepo, times(1)).findById(any(Long.class));
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

7) Validate

        assertAll(
                () -> assertNotNull(result),
                () -> assertEquals(objectDAO.getId(), result.getId())
        );
    }
}
🏆 Top Story: eidher/testing with mockito j - Latest Analysis 🏆 Top Story: eidher/testing with mockito j - Latest Analysis

Top comments (0)