首頁 >後端開發 >Golang >儘管日誌中的輸出相同,為什麼 Sqlmock 無法匹配我的查詢?

儘管日誌中的輸出相同,為什麼 Sqlmock 無法匹配我的查詢?

Linda Hamilton
Linda Hamilton原創
2024-11-12 16:59:02262瀏覽

Why is Sqlmock Failing to Match My Query Despite Identical Output in the Log?

儘管日誌輸出中有身份,Sqlmock 仍不匹配查詢

錯誤訊息

嘗試使用 sqlmock 匹配 Gorm>錯誤訊息

(path/to/my/project/database.go:263)
[2020-01-08 10:29:40]  Query: could not match actual sql: "SELECT * FROM "storage_pools" WHERE "storage_pools"."deleted_at" IS NULL AND ((poolid = ?)) ORDER BY "storage_pools"."id" ASC LIMIT 1" with expected regexp "SELECT * FROM "storage_pools" WHERE "storage_pools"."deleted_at" IS NULL AND ((poolid = ?)) ORDER BY "storage_pools"."id" ASC LIMIT 1"
嘗試使用 sqlmock 匹配 Gorm>錯誤訊息

嘗試使用 sqlmock 匹配 Gorm>錯誤訊息

嘗試使用 sqlmock 匹配 Gorm>錯誤訊息

嘗試使用 sqlmock 匹配 Gorm>錯誤訊息
QueryMatcherOption(sqlmock.QueryMatcherEqual)

嘗試使用 sqlmock 匹配 Gorm>錯誤訊息

    嘗試使用 sqlmock 匹配 Gorm測試中的查詢時,出現以下情況錯誤是遇到:
  • 解決方案
  • 問題源自於使用 regexp 作為 sqlmock 查詢匹配器。預設情況下,sqlmock 使用嚴格相等查詢匹配器,這要求實際查詢與預期模式之間完全匹配。
要解決此問題,請使用QueryMatcherEqual 選項替換預設查詢匹配器:其他注意事項確保查詢與實際匹配字元串,包括可能需要轉義的任何特殊字元。 如果查詢包含文字值,請使用 WithArgs() 指定參數並根據需要轉義它們。 如果查詢包含函數或複雜條件,使用regexp.QuoteMeta()將其轉換為sqlmock可以匹配的正規表示式

以上是儘管日誌中的輸出相同,為什麼 Sqlmock 無法匹配我的查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn