做java開發不久,只是開發一些簡單的需求,測試基本使用postman調用,然后交給測試人員。后來有幾次部署就出錯,然后se說要搞測試用例,於是就轟轟烈烈的搞起來了,然后自己也明白了測試用例代碼在開發中的重要性。
我們不能總是使用點點點來測試自己的程序,一個功能要可用,就要經過充分的測試。不能等上線完了,用戶提出來,我們才發現bug,再去修補。比如你一個接口,首先要測試這個接口能不能調通,然后看一些特殊情況,也就是程序的邊界問題,最簡單的比如求倒數1/n,其他正常情況沒有問題,但是當n=0時,就會報錯,就需要在這一步發現並處理。
寫測試用例的本質上就是使用程序去調用我們的方法或者接口,判斷和預期是否相同。
如果純手寫測試用例,代碼量還是挺多的,如果每個服務都要手寫,就更多了。我們在做leetcode,newcoder等的時候,提交后就是機器執行測試用例的過程。可以猜想,它不可能針對每一題都寫一個測試用例代碼,而是復用。也就是准備一堆輸入輸出,然后使用模板方法去調用我們的代碼,具體偽碼可表示為:
boolean test(ins,func,outs){ for i in (0, ints.length) { out = func(ins[i]); if !outs[i].equals(out){ print("error:",out); return false; } return true; }
這就是大名鼎鼎的Junit框架的最基本原理。該例只是測試一個獨立函數。
如果這個函數還需要獲取其他對象呢?那就得模擬函數的生存環境了。在springboot的框架中,就需要有spring對象容器,SpringbootTest就粉末登場了!其使用很簡單,兩個注解就完事了。
@RunWith(SpringRunner.class) @SpringBootTest(classes = SaasAbaBaseApp.class) public class MybatisPulsTest {
@Test public test(){ 測試業務 } }
這樣我們簡單地完成了我們的測試用例,提高了代碼的可靠性。