我有这样的代码:
tx, _ := db.Begin()
defer tx.Rollback()
err := db.Insert(foo)
err = db.Delete(bar)
if !err {
tx.Commit()
}
我不知道如何编写2个测试用例:
我在考虑:
foo
sql使其全局化来修补猴子 - 我不太喜欢上述每个选项似乎都不理想,我该如何编写这个测试用例?
答案 0 :(得分:0)
查看我的库dbwrap https://github.com/metakeule/dbwrap 实现了driver.Driver,包裹着另一个驱动程序。
它也有一个假的驱动程序,你可以这样使用。
package main
import (
"fmt"
"github.com/metakeule/dbwrap"
)
var fake, db = dbwrap.NewFake()
func q1() {
fake.SetNumInputs(1)
db.Query("Select ?", "hiho")
q, v := fake.LastQuery()
fmt.Println(q, v)
}
使用fake.go
的源代码作为起点。