欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

預(yù)覽

待測(cè)試的服務(wù)的實(shí)現(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();
  }
}

// 測(cè)試用例
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);
  }

  /**
   * 如果從存儲(chǔ)層查詢到一個(gè)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 的更多高級(jí)用法請(qǐng)參考官方網(wǎng)站框架配套 wiki。如果需要 mock 靜態(tài)方法、私有函數(shù)等,可以學(xué)習(xí) PowerMock, 拉取其源碼通過學(xué)習(xí)單元測(cè)試來快速掌握其用法。

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

相關(guān)文章

  • 詳解SpringBoot中JdbcTemplate的事務(wù)控制

    詳解SpringBoot中JdbcTemplate的事務(wù)控制

    JdbcTemplate是spring-jdbc提供的數(shù)據(jù)庫(kù)核心操作類,那對(duì)JdbcTemplate進(jìn)行事務(wù)控制呢,本文就詳細(xì)的介紹一下
    2021-09-09
  • java利用socket通信實(shí)現(xiàn)Modbus-RTU通信協(xié)議的示例代碼

    java利用socket通信實(shí)現(xiàn)Modbus-RTU通信協(xié)議的示例代碼

    這篇文章主要介紹了java利用socket通信實(shí)現(xiàn)Modbus-RTU通信協(xié)議的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java?回調(diào)callback舉例詳解

    Java?回調(diào)callback舉例詳解

    這篇文章主要介紹了Java?回調(diào)callback舉例詳解,軟件模塊之間總是存在一定的接口,從調(diào)用方式上,可以把他們分為三類:同步調(diào)用、回調(diào)和異步調(diào)用
    2022-09-09
  • jsoup?框架的使用小結(jié)

    jsoup?框架的使用小結(jié)

    jsoup 是一款基于Java的HTML解析器,它提供了一套非常省力的API,不但能直接解析某個(gè)URL地址、HTML文本內(nèi)容,而且還能通過類似于 DOM、CSS 或者jQuery的方法來操作數(shù)據(jù),所以jsoup也可以被當(dāng)做爬蟲工具使用,這篇文章主要介紹了jsoup使用,需要的朋友可以參考下
    2023-04-04
  • JVM堆外內(nèi)存源碼完全解讀分析

    JVM堆外內(nèi)存源碼完全解讀分析

    這篇文章主要為大家介紹了JVM堆外內(nèi)存的核心原理的源碼解讀的完全分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步,早日升職加薪
    2022-01-01
  • 學(xué)習(xí)Java之IO流的基礎(chǔ)概念詳解

    學(xué)習(xí)Java之IO流的基礎(chǔ)概念詳解

    這篇文章主要給大家介紹了Java中的IO流,我們首先要搞清楚一件事,就是為什么需要IO流這個(gè)東西,但在正式學(xué)習(xí)IO流的使用之前,小編有必要帶大家先了解一下IO流的基本概念,需要的朋友可以參考下
    2023-09-09
  • Spring Boot實(shí)現(xiàn)qq郵箱驗(yàn)證碼注冊(cè)和登錄驗(yàn)證功能

    Spring Boot實(shí)現(xiàn)qq郵箱驗(yàn)證碼注冊(cè)和登錄驗(yàn)證功能

    這篇文章主要給大家介紹了關(guān)于Spring Boot實(shí)現(xiàn)qq郵箱驗(yàn)證碼注冊(cè)和登錄驗(yàn)證功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java8?lambda表達(dá)式的10個(gè)實(shí)例講解

    Java8?lambda表達(dá)式的10個(gè)實(shí)例講解

    這篇文章主要介紹了Java8?lambda表達(dá)式的10個(gè)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • JavaCV實(shí)現(xiàn)圖片中人臉檢測(cè)的示例代碼

    JavaCV實(shí)現(xiàn)圖片中人臉檢測(cè)的示例代碼

    這篇文章主要介紹了如何利用JavaCV實(shí)現(xiàn)圖片中人臉檢測(cè)的功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的可以了解一下
    2022-11-11
  • Spring中事件發(fā)布機(jī)制及流程詳解

    Spring中事件發(fā)布機(jī)制及流程詳解

    這篇文章主要介紹了Spring中事件發(fā)布機(jī)制及流程詳解,在分析源碼的過程中,也是大量使用了事件機(jī)制,在我分析的這篇博客中,有不少地方都運(yùn)用了事件發(fā)布機(jī)制,所以本文的目的是從SpringBoot中學(xué)習(xí)到事件的發(fā)布流程,需要的朋友可以參考下
    2023-11-11

最新評(píng)論