Heim > Artikel > Backend-Entwicklung > Warum findet Sqlmock trotz identischer Ausgabe im Protokoll keine Übereinstimmung mit meiner Abfrage?
Beim Versuch, eine Abfrage in einem Gorm-Test mit sqlmock abzugleichen, geschieht Folgendes Es ist ein Fehler aufgetreten:
(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"
Das Problem besteht aus der Verwendung von regexp als SQLMock-Abfrage-Matcher. Standardmäßig verwendet sqlmock einen Abfrage-Matcher mit strenger Gleichheit, der eine genaue Übereinstimmung zwischen der tatsächlichen Abfrage und dem erwarteten Muster erfordert.
Um dieses Problem zu lösen, verwenden Sie die Option QueryMatcherEqual, um den Standard-Abfrage-Matcher zu ersetzen:
QueryMatcherOption(sqlmock.QueryMatcherEqual)
Das obige ist der detaillierte Inhalt vonWarum findet Sqlmock trotz identischer Ausgabe im Protokoll keine Übereinstimmung mit meiner Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!