第一次使用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
- 第一次使用Mockito进行测试
- 【翻译】Java使用Mockito进行Mock测试
- 使用junit+mockito进行mock测试实例
- 单元测试进阶-使用 Mockito 进行测试
- 使用Mockito进行单元测试
- 使用Retrofit和Mockito进行可靠的Android API测试
- 使用Mockito进行java单元测试
- 使用Mockito进行Java单元测试
- hadoop中使用Mockito进行单元测试
- 使用Powermock和mockito来进行单元测试
- 使用Mockito对异步方法进行单元测试
- 使用Powermock和mockito来进行单元测试
- 使用Mockito对异步方法进行单元测试
- 使用Mockito和Roboletric进行Android单元测试
- mockito测试
- Mockito测试
- 使用Powermock和Mockito测试静态方法
- 使用Powermock和mockito测试静态方法
- codeblocks添加jump back/forward快捷键(返回上一视图)
- OpenSSL 1.0.2a的一点小bug
- undefined reference to `__gmp_get_memory_functions'
- JavaScript之DOM
- hdoj 1069 Monkey and Banana 【DP】
- 第一次使用Mockito进行测试
- Android异步加载全解析之IntentService
- Python调用微信截图工具
- Sql分页
- 运行shell 与部分命令
- iOS常用设计模式——观察者设计模式
- C/C++内存分配
- 2015年3月31号日志
- linux 开发常用命令git