iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

分享自己的知識及生活管理系統 系列 第 25

建立簡易版imgur - (設定測試環境) Day25

  • 分享至 

  • xImage
  •  

文章同步發佈於https://kevinyay945.com/ironman2022/day25

我們現在已經透過OAuth2.0的方式拿到access_token了,那接下來我們就要來撰寫上傳到pcloud的程式了

需求是

  • 將一張照片讀取並上傳到pcloud

那我們這次希望可以透過測試的方式來進行開發,透過這樣的開發,我們可以單獨先寫一支小的程式,將功能全部設定完成後,再將這個程式併入原先的系統中,如此一來就能達到既有範例程式碼,也可以達到不會因為要測試一個小小的功能,就要將完整的程式整段跑起來

而這次我要使用的測試框架是選用Ginkgo
會選擇這套的原因是因為這套的操作邏輯跟表達測試的過程我比較喜歡

當然,使用一套新的套件,第一步就是先閱讀Getting Start
可以看到他需要先執行

go install github.com/onsi/ginkgo/v2/ginkgo
go get github.com/onsi/gomega/...

來進行安裝,緊接著跟著執行

ginkgo bootstrap

這段內容會在你執行的路徑下產生一個將go原生的testing與ginkgo串接的功能,如此,就能讓原先的go的測試能夠順利執行

緊接著我們要建立第一個希望的test_file

ginkgo generate pcloud

如此會產生一個pcloud_test.go的檔案

緊接著,我們可以在裡面寫上我們的第一個測試

package main_test  
  
import (  
   . "github.com/onsi/ginkgo/v2"  
   . "github.com/onsi/gomega"  
)  
  
var _ = Describe("PCloud", func() {  
   It("First Test", func() {  
      Expect("hello").Should(Equal("world"))  
   })  
})

接下來就可以執行測試的內容了,只要執行

go test ./...

就可以看到以下內容

另外,如果你使用的是VScode可以安裝這個套件https://marketplace.visualstudio.com/items?itemName=joselitofilho.ginkgotestexplorer

如果你是jetbrain用戶,可以安裝這個套件
https://plugins.jetbrains.com/plugin/17554-ginkgo

可以對於執行測試更有幫助的


上一篇
OAuth2.0介紹 - Implicit Flow (番外篇) Day24
下一篇
建立簡易版imgur - (建立http client interface) Day26
系列文
分享自己的知識及生活管理系統 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言