时间:2021-05-20
待测试的服务接口:
public interface ItemService { String getItemNameUpperCase(String itemId);}预览
待测试的服务的实现类:
@Servicepublic class ItemServiceImpl implements ItemService { @Resource private ItemRepository itemRepository; @Override public String getItemNameUpperCase(String itemId) { Item item = itemRepository.findById(itemId); if (item == null) { return null; } return item.getName().toUpperCase(); }}// 测试用例import org.junit.Before;import org.junit.Test;import org.mockito.InjectMocks;import org.mockito.Mock;import org.mockito.MockitoAnnotations;import static org.assertj.core.api.Assertions.assertThat;import static org.mockito.Mockito.*;public class ItemServiceTest { @Mock private ItemRepository itemRepository; @InjectMocks private ItemServiceImpl itemService; @Before public void setUp(){ MockitoAnnotations.initMocks(this); } /** * 如果从存储层查询到一个Item, 那么它的 name 将被转化为大写. */ @Test public void shouldReturnItemNameInUpperCase() { // Given Item mockedItem = new Item("it1", "Item 1", "This is item 1", 2000, true); when(itemRepository.findById("it1")).thenReturn(mockedItem); // When String result = itemService.getItemNameUpperCase("it1"); // Then verify(itemRepository, times(1)).findById("it1"); assertThat(result).isEqualTo("ITEM 1"); }}Mockito 的更多高级用法请参考官方网站和框架配套 wiki。如果需要 mock 静态方法、私有函数等,可以学习PowerMock, 拉取其源码通过学习单元测试来快速掌握其用法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
项目开发过程中使用的单元测试框架有Junit、TestNG以及Mockito,Junit和TestNG使用的比较多,Mockito最近才开始使用。TestNG与
为什么要进行单元测试?单元测试保证局部代码的质量单元测试改良项目代码的整体结构单元测试降低测试、维护升级的成本单元测试使开发过程适应频繁变化的需求单元测试有助于
JUnit是Java中最有名的单元测试框架,用于编写和运行可重复的测试,多数Java的开发环境都已经集成了JUnit作为单元测试的工具。好的单元测试能极大的提高
AngularJS单元测试网上有很多单元测试的教程,比如如何安装jasmine和ngMock,大家可以搜一下。这里就不在说了。下面重点介绍一个单元测试的过程。加
本文实例讲述了java单元测试JUnit框架原理与用法。分享给大家供大家参考,具体如下:1简介JUnit是一个Java语言的单元测试框架,它由KentBeck和