我试图在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函数?
答案 0 :(得分:0)
我使用了以下软件包
导入(sql“数据库/ sql”)
这使我可以检查以下内容,
....
var rows sql.Result
...
<execute query >
...
rows.RowsAffected()
rows.RowsAffected()提供更新的行数。