Java Mockito:如何用mocking测试我的服务?
我不熟悉模拟测试 我想测试我的服务方法Java Mockito:如何用mocking测试我的服务?,java,testing,junit,mocking,mockito,Java,Testing,Junit,Mocking,Mockito,我不熟悉模拟测试 我想测试我的服务方法CorrectionService.correctionPerson(长人名)。 该实现尚未编写,但它将执行以下操作: CorrectionService将调用AddressDAO方法,该方法将删除人员拥有的一些地址。一个人有许多地址 我不确定我的CorrectionServiceTest.testCorrectPerson的基本结构必须是什么 另外,请不要确认,在这个测试中,我不需要测试地址是否被实际删除(应该在AddressDaoTest中完成),只需要
CorrectionService.correctionPerson(长人名)
。
该实现尚未编写,但它将执行以下操作:
CorrectionService
将调用AddressDAO
方法,该方法将删除人员拥有的一些地址。一个人有许多地址
我不确定我的CorrectionServiceTest.testCorrectPerson的基本结构必须是什么
另外,请不要确认,在这个测试中,我不需要测试地址是否被实际删除(应该在AddressDaoTest
中完成),只需要调用DAO方法
感谢您提供了CorrectionService类的简化版本(为了简单起见,删除了可见性修饰符)
在您的测试中:
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);
}
}
清洁版:
@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);
}
}
@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);
}
}