【发布时间】:2019-02-12 10:58:46
【问题描述】:
我写了一个函数:
func AllItems(w http.ResponseWriter, r *http.Request) {
db, err := gorm.Open("sqlite3", "test.db")
if err != nil {
panic("failed to connect database")
}
defer db.Close()
var items [] Item
db.Find(&items)
fmt.Println("{}", items)
json.NewEncoder(w).Encode(items)
}
我想对此进行单元测试。理想情况下,单元测试意味着函数的每一行都需要测试。我不确定我应该如何测试数据库连接是否打开,然后它是否显示数据库的所有内容。我应该如何测试这段代码?
此函数是简单 CRUD 应用程序的 GET 端点。代码是here。
【问题讨论】:
-
不确定如何在 Go 中执行此操作,评论只是一个旁注。也许在内存中使用 sqlite3 可能更好用 (
:memory:)。
标签: unit-testing go mocking testify