尝试使用 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"
问题源于使用 regexp 作为 sqlmock 查询匹配器。默认情况下,sqlmock 使用严格相等查询匹配器,这要求实际查询与预期模式之间完全匹配。
要解决此问题,请使用 QueryMatcherEqual 选项替换默认查询匹配器:
QueryMatcherOption(sqlmock.QueryMatcherEqual)
以上是尽管日志中的输出相同,为什么 Sqlmock 无法匹配我的查询?的详细内容。更多信息请关注PHP中文网其他相关文章!