I'm new to mock testing.
I want to test my Service method CorrectionService.correctPerson(Long personId)
.
The implementation is not yet written but this it what it will do:
CorrectionService
will call a method of AddressDAO
that will remove some of the Adress
that a Person
has. One Person
has Many Address
es
I'm not sure what the basic structure must be of my CorrectionServiceTest.testCorrectPerson
.
Also please do/not confirm that in this test i do not need to test if the adresses are actually deleted (should be done in a AddressDaoTest
), Only that the DAO method was being called.
Thank you
Mockito when() method It should be used when we want to mock to return specific values when particular methods are called. In simple terms, "When the XYZ() method is called, then return ABC." It is mostly used when there is some condition to execute.
To mock the external service, we can abstract all its logic within an interface which we can implement elsewhere and use it by our functional tests, returning the outcome we need to test the behavior of our application.
Cleaner version:
@RunWith(MockitoJUnitRunner.class)
public class CorrectionServiceTest {
private static final Long VALID_ID = 123L;
@Mock
AddressDao addressDao;
@InjectMocks
private CorrectionService correctionService;
@Test
public void shouldCallDeleteAddress() {
//when
correctionService.correct(VALID_ID);
//then
verify(addressDao).deleteAddress(VALID_ID);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With