第一次使用Mockito进行测试

第一次使用Mockito进行测试,,记录一下

package com.hxt.account.mpos.service.impl;import static org.junit.Assert.*;import static org.mockito.Mockito.*;import org.junit.Test;import org.junit.runner.RunWith;import org.mockito.InjectMocks;import org.mockito.Mock;import org.mockito.invocation.InvocationOnMock;import org.mockito.runners.MockitoJUnitRunner;import org.mockito.stubbing.Answer;import com.hxt.account.exception.RegisterException;import com.hxt.account.mpos.service.MposRegisterService;import com.hxt.account.persistence.MerchantInfo;import com.hxt.account.persistence.UserInfo;import com.hxt.account.repository.MerchantInfoRepository;import com.hxt.account.repository.UserInfoRepository;import com.hxt.account.service.RegisterService;import com.hxt.common.internal.UserType;import com.hxt.common.internal.exception.BlankArgumentException;import com.hxt.id.generator.service.MerchantInfoIdGenerator;import com.hxt.id.generator.service.UserInfoIdGenerator;@RunWith(MockitoJUnitRunner.class)public class MposRegisterServiceImplTest {@Mockprivate RegisterService registerService;@Mockprivate UserInfoRepository userInfoRepository;@Mockprivate UserInfoIdGenerator userInfoIdGenerator;@Mockprivate MerchantInfoIdGenerator merchantInfoIdGenerator;@Mockprivate MerchantInfoRepository merchantInfoRepository;@InjectMocksMposRegisterService mposRegisterService = new MposRegisterServiceImpl();@Testpublic void testRegisterSuccess() throws RegisterException, BlankArgumentException {when(registerService.userExists(isA(String.class))).thenReturn(false);when(userInfoRepository.save(isA(UserInfo.class))).thenAnswer(new Answer<UserInfo>() {@Overridepublic UserInfo answer(InvocationOnMock invocation) throws Throwable {UserInfo info = new UserInfo();info.setUserId("001");return info;}});when(userInfoIdGenerator.generate(isA(UserType.class))).thenReturn("001");when(merchantInfoIdGenerator.generate()).thenReturn("0001");when(merchantInfoRepository.save(isA(MerchantInfo.class))).thenAnswer(new Answer<MerchantInfo>() {@Overridepublic MerchantInfo answer(InvocationOnMock invocation) throws Throwable {MerchantInfo info = new MerchantInfo();info.setMerchantId("0001");return info;}});String merchantId = mposRegisterService.register("13100001111", "123456");verify(registerService).userExists(isA(String.class));verifyNoMoreInteractions(registerService);verify(userInfoRepository).save(isA(UserInfo.class));verifyNoMoreInteractions(userInfoRepository);verify(userInfoIdGenerator).generate(isA(UserType.class));verifyNoMoreInteractions(userInfoIdGenerator);verify(merchantInfoIdGenerator).generate();verifyNoMoreInteractions(merchantInfoIdGenerator);verify(merchantInfoRepository).save(isA(MerchantInfo.class));verifyNoMoreInteractions(merchantInfoRepository);assertTrue("merchant info id is not correct", merchantId.equals("0001"));}@Test(expected = BlankArgumentException.class)public void testRegisterThrowBlankArgumentException() throws BlankArgumentException, RegisterException {mposRegisterService.register("", "");}@Test(expected = RegisterException.class)public void testRegisterThrowRegisterException() throws RegisterException, BlankArgumentException {when(registerService.userExists(isA(String.class))).thenReturn(true);mposRegisterService.register("13100001111", "123456");verify(registerService).userExists(isA(String.class));verifyNoMoreInteractions(registerService);}}that’s all

不能接受失败,也意味太想去成功了,从心理学上解释,

第一次使用Mockito进行测试

相关文章:

你感兴趣的文章:

标签云: