2010-02-18 2 views
4

Я новичок в тестировании.Mockito: Как проверить мою службу с насмешкой?

Я хочу проверить свой метод обслуживания CorrectionService.CorrectPerson(Long personId). реализация еще не написана, но это его, что он будет делать:

CorrectionService будет вызывать метод AddressDAO, который удалит некоторые из Adress, что Person имеет. Один Person имеет много Address es

Я не уверен, что основная структура должна быть моей CorrectionServiceTest.testCorrectPerson.

Также, пожалуйста, сделайте/не подтвердите, что в этом тесте мне не нужно проверять, действительно ли адреса удалены (должно быть сделано в AddressDaoTest), только что вызывается метод DAO.

Спасибо

ответ

3

Упрощенная версия класса 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); 
    } 
} 
11

уборщик версия:

@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); 
    } 
} 
Смежные вопросы