第一次使用Mockito进行测试

来源:互联网 发布:西安市行知中学好不好 编辑:程序博客网 时间:2024/06/05 00:09

第一次使用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 {    @Mock    private RegisterService registerService;    @Mock    private UserInfoRepository userInfoRepository;    @Mock    private UserInfoIdGenerator userInfoIdGenerator;    @Mock    private MerchantInfoIdGenerator merchantInfoIdGenerator;    @Mock    private MerchantInfoRepository merchantInfoRepository;    @InjectMocks    MposRegisterService mposRegisterService = new MposRegisterServiceImpl();    @Test    public void testRegisterSuccess() throws RegisterException, BlankArgumentException {        when(registerService.userExists(isA(String.class))).thenReturn(false);        when(userInfoRepository.save(isA(UserInfo.class))).thenAnswer(new Answer<UserInfo>() {            @Override            public 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>() {            @Override            public 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

1 0
原创粉丝点击