Я являюсь новым для насмешки тестирования.
Я хочу протестировать свой Сервисный метод CorrectionService.correctPerson(Long personId)
. Реализация еще не записана, но это это, что это сделает:
CorrectionService
назовет метод AddressDAO
это удалит часть из Adress
это a Person
имеет. Один Person
имеет Многих Address
es
Я не уверен, что базовая структура должна иметь мой CorrectionServiceTest.testCorrectPerson
.
Также/не, подтверждают, что в этом тесте я не должен тестировать, если адреса на самом деле удалены (должен быть сделан в a AddressDaoTest
), Только то, что метод ДАО называли.
Спасибо
Упрощенная версия класса CorrectionService (модификаторы видимости удалены для простоты).
class CorrectionService {
AddressDao addressDao;
CorrectionService(AddressDao addressDao) {
this.addressDao;
}
void correctPerson(Long personId) {
//Do some stuff with the addressDao here...
}
}
В вашем тесте:
import static org.mockito.Mockito.*;
public class CorrectionServiceTest {
@Before
public void setUp() {
addressDao = mock(AddressDao.class);
correctionService = new CorrectionService(addressDao);
}
@Test
public void shouldCallDeleteAddress() {
correctionService.correct(VALID_ID);
verify(addressDao).deleteAddress(VALID_ID);
}
}