Java mockito单元测试实现过程解析
待测试的服务接口:
publicinterfaceItemService{ StringgetItemNameUpperCase(StringitemId); }
预览
待测试的服务的实现类:
@Service publicclassItemServiceImplimplementsItemService{ @Resource privateItemRepositoryitemRepository; @Override publicStringgetItemNameUpperCase(StringitemId){ Itemitem=itemRepository.findById(itemId); if(item==null){ returnnull; } returnitem.getName().toUpperCase(); } } //测试用例 importorg.junit.Before; importorg.junit.Test; importorg.mockito.InjectMocks; importorg.mockito.Mock; importorg.mockito.MockitoAnnotations; importstaticorg.assertj.core.api.Assertions.assertThat; importstaticorg.mockito.Mockito.*; publicclassItemServiceTest{ @Mock privateItemRepositoryitemRepository; @InjectMocks privateItemServiceImplitemService; @Before publicvoidsetUp(){ MockitoAnnotations.initMocks(this); } /** *如果从存储层查询到一个Item,那么它的name将被转化为大写. */ @Test publicvoidshouldReturnItemNameInUpperCase(){ //Given ItemmockedItem=newItem("it1","Item1","Thisisitem1",2000,true); when(itemRepository.findById("it1")).thenReturn(mockedItem); //When Stringresult=itemService.getItemNameUpperCase("it1"); //Then verify(itemRepository,times(1)).findById("it1"); assertThat(result).isEqualTo("ITEM1"); } }
Mockito的更多高级用法请参考官方网站和框架配套wiki。如果需要mock静态方法、私有函数等,可以学习 PowerMock,拉取其源码通过学习单元测试来快速掌握其用法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。