如何在go中模拟sql更新

时间:2017-06-02 11:14:06

标签: postgresql 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函数?

1 个答案:

答案 0 :(得分:0)

我使用了以下软件包

  

导入(sql“数据库/ sql”)

这使我可以检查以下内容,

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

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