最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java mockito單元測試實現(xiàn)過程解析

 更新時間:2020年08月31日 09:41:22   作者:BigOrang  
這篇文章主要介紹了Java mockito單元測試實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

待測試的服務(wù)接口:

public interface ItemService {
  String getItemNameUpperCase(String itemId);
}

預(yù)覽

待測試的服務(wù)的實現(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ù)等,可以學(xué)習(xí) PowerMock, 拉取其源碼通過學(xué)習(xí)單元測試來快速掌握其用法。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java包裝類之自動裝箱與拆箱

    Java包裝類之自動裝箱與拆箱

    這篇文章主要介紹了Java包裝類之自動裝箱與拆箱,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Java基本數(shù)據(jù)類型包裝類原理解析

    Java基本數(shù)據(jù)類型包裝類原理解析

    這篇文章主要介紹了Java基本數(shù)據(jù)類型包裝類原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解)

    Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解)

    這篇文章主要介紹了Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解),本文給出了普通的99乘法實現(xiàn)方法和用遞歸實現(xiàn)的方法,并對比它們的不同,體現(xiàn)出遞歸的運用及理解,需要的朋友可以參考下
    2015-03-03
  • Spring事務(wù)失效的各種場景(13種)

    Spring事務(wù)失效的各種場景(13種)

    本文主要介紹了Spring事務(wù)失效的各種場景,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • JDBC三層架構(gòu)深入刨析

    JDBC三層架構(gòu)深入刨析

    三層架構(gòu)是一種軟件設(shè)計架構(gòu),是一種組織代碼的手段和方法,三層架構(gòu)的優(yōu)點是擴展性好,復(fù)用性高;缺點是步驟多,比較繁瑣;代碼多,效率降低
    2022-12-12
  • IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    IDEA感覺不香了AI智能編程工具Cursor使用圖文教程

    這篇文章主要介紹了IDEA感覺不香了AI智能編程工具Cursor使用,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java可重入鎖ReentrantLock詳解

    Java可重入鎖ReentrantLock詳解

    這篇文章主要介紹了Java可重入鎖ReentrantLock詳解,ReentrantLock是一個可重入且獨占式的鎖,是一種遞歸無阻塞的同步機制,它支持重復(fù)進入鎖,即該鎖能夠支持一個線程對資源的重復(fù)加鎖,除此之外,該鎖的還支持獲取鎖時的公平和非公平性選擇,需要的朋友可以參考下
    2023-09-09
  • Spring實戰(zhàn)之屬性覆蓋占位符配置器用法示例

    Spring實戰(zhàn)之屬性覆蓋占位符配置器用法示例

    這篇文章主要介紹了Spring實戰(zhàn)之屬性覆蓋占位符配置器用法,結(jié)合實例形式分析了Spring屬性覆蓋占位符配置器相關(guān)原理、配置與使用技巧,需要的朋友可以參考下
    2019-12-12
  • SpringBoot詳細講解靜態(tài)資源導(dǎo)入的實現(xiàn)

    SpringBoot詳細講解靜態(tài)資源導(dǎo)入的實現(xiàn)

    在Web開發(fā)過程中,我們需要接觸許多靜態(tài)資源,如CSS、JS、圖片等;在之前的開發(fā)中,這些資源都放在Web目錄下,用到的時候按照對應(yīng)路徑訪問即可。不過在SpringBoot項目中,沒有了Web目錄,那這些靜態(tài)資源該放到哪里去,又要如何訪問呢?這就是我們要講的靜態(tài)資源導(dǎo)入
    2022-05-05
  • 在Spring Boot中如何使用Cookies詳析

    在Spring Boot中如何使用Cookies詳析

    這篇文章主要給大家介紹了關(guān)于在Spring Boot中如何使用Cookies的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評論

湖州市| 望奎县| 临城县| 云浮市| 新安县| 潞城市| 芦溪县| 南漳县| 白山市| 肇州县| 宜君县| 淄博市| 蒙阴县| 新沂市| 江山市| 双城市| 公主岭市| 东乌珠穆沁旗| 康马县| 福鼎市| 泰兴市| 澄迈县| 抚宁县| 盱眙县| 雷州市| 偏关县| 克山县| 双峰县| 沙雅县| 安泽县| 闵行区| 岢岚县| 柳林县| 新竹县| 穆棱市| 磐安县| 辽阳县| 清流县| 白城市| 金川县| 广丰县|