我正在设置测试Go。
我用go-sqlmockGo Gin 作为框架来测试 mysql 连接。现在我尝试测试mysql插入逻辑。
问题是我需要设置稍后gin.Context使用的模拟BindJSON。但到目前为止
我还不能设置这个。gin.Context
server side: golang
db: mysql
web framework: gin
Run Code Online (Sandbox Code Playgroud)
道戈
server side: golang
db: mysql
web framework: gin
Run Code Online (Sandbox Code Playgroud)
dao_test.go
unc PostImageToDBDao(c *gin.Context, db *sql.DB) {
// Because of this logic, I need to set gin.Context with json
var imageData util.ImageData
c.BindJSON(&imageData)
for _, imageName := range imageData.IMAGENAMES {
ins, err := db.Prepare("INSERT INTO images(article_uuid, image_name) VALUES(?,?)")
if err != nil {
log.Fatal(err)
}
ins.Exec(imageData.ARTICLEUUID, …Run Code Online (Sandbox Code Playgroud) 我正在设置测试golang。
我用来go-sqlmock测试mysql连接。
但是sqlmock.NewRows和mock.ExpectQuery不能很好地处理错误。
我想知道如何解决这个错误。
server side: golang
db: mysql
web framework: gin
Run Code Online (Sandbox Code Playgroud)
道戈
server side: golang
db: mysql
web framework: gin
Run Code Online (Sandbox Code Playgroud)
dao_test.go
func GetSingleArticleDao(c *gin.Context, db *sql.DB) (util.Article, *sql.Rows) {
id := c.Params.ByName("id")
article := util.Article{}
errArticle := db.QueryRow("SELECT * FROM articles WHERE id = ?", id).Scan(&article.ID, &article.UUID, &article.TITLE, &article.CONTENT)
if errArticle != nil {
panic(errArticle.Error())
}
rows, errImage := db.Query("SELECT image_name FROM images WHERE article_uuid = ?", article.UUID)
if errImage != …Run Code Online (Sandbox Code Playgroud)