Spring Boot - 單元測試(Junit4&Mockito)

回顧

  1. Spring Boot - 初識 Hello World
  2. Spring Boot - Servlet、過濾器、監聽器、攔截器
  3. Spring Boot - 靜態資源處理、啓動加載、日誌處理
  4. Spring Boot - 部署Deploy
  5. Spring Boot - 整合jsp後必須經過spring-boot:run方式啓動?
  6. Spring Boot - 爲何整合jsp後必須經過spring-boot:run方式啓動?
  7. Spring Boot - 自定義啓動banner
  8. Spring Boot - 表單校驗(JSR303&Hibernate Validator)

爲何要作單元測試?現狀

  1. 不知道怎麼編寫單元測試
  2. 項目沒有要求,因此不編寫
  3. 單元測試價值不高,徹底是浪費時間
  4. 業務邏輯比較簡單,不值得編寫單元測試
  5. 無論怎樣,集成測試將會抓住全部的 bug,用不着進行單元測試
  6. 在項目的前期仍是儘可能去編寫單元測試,可是越到項目的後期就越失控
  7. 爲了完成編碼任務,沒有足夠的時間編寫單元測試

工具(一):Junit4

  • 註解的使用spring

    • @Test
    • @Before @After
    • @BeforeClass @AfterClass

工具(二):spring-boot-starter-test

  • 註解的使用segmentfault

    • @RunWith(SpringRunner.class)
    • @SpringBootTest
  • 斷言:對結果進行驗證cookie

    • Assert
  • 模擬HTTP環境異步

    • 註解:@AutoConfigureMockMvc
    • 工具類:MockMvc(3步)
    • perform:執行一個RequestBuilder請求,會自動執行SpringMVC的流程並映射到相應的控制器執行處理;jsp

      • MockMvcRequestBuilders提供了get/post/put/delete/upload等http請求的方式
      • 提供了header/contentType/cookie/characterEncoding/params等設置request參數的方式
    • ResultActionsspring-boot

      • andExpect:添加ResultMatcher驗證規則,驗證控制器執行完成後結果是否正確;
      • andDo:添加ResultHandler結果處理器,好比調試時打印結果到控制檯;
      • andReturn:最後返回相應的MvcResult;而後進行自定義驗證/進行下一步的異步處理;
    • MvcResult(自定義Assert)工具

      • getModelAndView:得到控制層設置的ModeAndView對象
      • getResponse:得到最終響應結果

工具(三):Mockito

  • 打樁:實際上就是對接口、類、方法、參數、返回值進行僞造或者模擬。post

    • ReflectionTestUtils
  • 註解的使用單元測試

    • @Mock:真實對象的替代品
    • @Spy:被測試對象須要一部分被執行、一部分被mock,須要用spy對目標對象進行包裝
  • thenReturn與doReturn差別測試

    • 語法:

      • when-thenReturn

        • when(obj.method()).thenReturn(returnValue)
      • doReturn-when

        • doReturn(returnValue).when(obj).method()
    • 差別
    API Mock Obj Spy Obj
    when-thenReturn ×
    doReturn-when × ×

總結

本文詳細的講解了Junit,Mockito,以及spring boot的測試工具,相信各位看官老爺必定還想了解更多詳細內容和使用技巧。

??當面講給你聽?? 講堂地址,或許是最實用的教程,新課促銷中,只要你敢來,保你收貨滿滿?。

優惠報名

【全程擼碼】Spring Boot 1.5 快速入門教程(全)(原價:28,優惠價:22)

【全程擼碼】Spring Boot 進階(全)(原價:46,優惠價:39)

圖片描述

相關文章
相關標籤/搜索