簡體   English   中英

如何在Go中模擬SQL更新

[英]How to mock sql update in go

我正在嘗試編寫一個單元測試以更新Golang中Postgresql中的記錄

數據庫功能是

CREATE OR REPLACE FUNCTION test.update(param_id text, param_data jsonb, id2 text) RETURNS void AS
$$
BEGIN
    UPDATE test.test_table
    SET data = param_data,
    WHERE id = (SELECT id FROM test.test_table2 WHERE name = id2)
END;
$$
LANGUAGE plpgsql;

單元測試是

rows := sqlmock.NewRows([]string{"result"}).AddRow("")

mock.ExpectBegin()
mock.ExpectQuery(fmt.Sprintf("SELECT %v.update(.+)", schema)).WithArgs(1, data).WillReturnRows(rows)
mock.ExpectCommit()

我還需要模擬里面的選擇查詢嗎? 如何模擬void函數?

我用了以下包裝

導入(SQL“數據庫/ SQL”)

這使我可以檢查以下內容,

.... var rows sql.Result ... <execute query > ... rows.RowsAffected()

rows.RowsAffected()提供更新的行數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM