go語言使用monkey庫,進行mock

2021-08-20 08:23:23 字數 1324 閱讀 2239



go語言monkey庫,進行mock

1、目的

模組自測,對依賴的模組函式進行mock,從而達到不更改其他模組**,完成本模組全部**測試的目的

2、庫:

3、函式以及方法舉例

目錄結構

srctest

24_mock

main

main.go

mock_test

mock.go

test

test.go

執行結果:

a:1+b:2=3

a:1+b:2

a:1+b:2=3

a:1+b:2

process finished with exit code 0

**如下:

//para1:獲取例項的反射型別,para2:被替換的方法名,para3:替換方法

monkey.patchinstancemethod(reflect.typeof(structsum), "printsum", mock_test.printsum)

p := structsum.printsum(1, 2)

fmt.println(p)

monkey.unpatchall() //解除所有替換

p = structsum.printsum(1, 2)

fmt.println(p)

func main()

mock.go

package mock_test

import "fmt"

import "test/24_mock/test"

func printadd(a, b uint32) string

//對應test資料夾下的printsum

func printsum(_ *test.sumtest, a, b uint32) string

test.go

package test

import "fmt"

func printadd(a, b uint32) string

type sumtest struct

func (*sumtest)printsum(a, b uint32) string

Go語言標準庫Json的使用

github上別人做的封裝,挺好用的,推薦一下 這個內建的標準庫用起來還是很煩得,要知道對方發過來的type,不然只能自己分析反射.package main import encoding json fmt type status slice int type info struct func ma...

Go語言使用PostgreSQL資料庫

postgresql和mysql比較,它更加龐大一點,因為它是用來替代oracle而設計的。所以在企業應用中採用postgresql是乙個明智的選擇。現在mysql被oracle收購之後,有傳聞oracle正在逐步的封閉mysql,鑑於此,將來我們也許會選擇postgresql而不是mysql作為專...

Go語言標準庫flag基本使用

文章引用自 如果你只是簡單的想要獲取命令列引數,可以像下面的 示例一樣使用os.args來獲取命令列引數。package main import fmt os demo func main 將上面的 執行go build o args demo 編譯之後,執行 args demo a b c d a...