Java mockito單元測試實現(xiàn)過程解析
更新時間:2020年08月31日 09:41:22 作者:BigOrang
這篇文章主要介紹了Java mockito單元測試實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
待測試的服務接口:
public interface ItemService { String getItemNameUpperCase(String itemId); }
預覽
待測試的服務的實現(xiàn)類:
@Service public 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 將被轉(zhuǎn)化為大寫. */ @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 的更多高級用法請參考官方網(wǎng)站和框架配套 wiki。如果需要 mock 靜態(tài)方法、私有函數(shù)等,可以學習 PowerMock, 拉取其源碼通過學習單元測試來快速掌握其用法。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
詳解SpringBoot中JdbcTemplate的事務控制
JdbcTemplate是spring-jdbc提供的數(shù)據(jù)庫核心操作類,那對JdbcTemplate進行事務控制呢,本文就詳細的介紹一下2021-09-09java利用socket通信實現(xiàn)Modbus-RTU通信協(xié)議的示例代碼
這篇文章主要介紹了java利用socket通信實現(xiàn)Modbus-RTU通信協(xié)議的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04Spring Boot實現(xiàn)qq郵箱驗證碼注冊和登錄驗證功能
這篇文章主要給大家介紹了關于Spring Boot實現(xiàn)qq郵箱驗證碼注冊和登錄驗證功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12