diff --git a/query.go b/query.go index 47d3796..54341a3 100644 --- a/query.go +++ b/query.go @@ -42,9 +42,12 @@ func (f QueryMatcherFunc) Match(expectedSQL, actualSQL string) error { // QueryMatcherRegexp is the default SQL query matcher // used by sqlmock. It parses expectedSQL to a regular // expression and attempts to match actualSQL. -var QueryMatcherRegexp QueryMatcher = QueryMatcherFunc(func(expectedSQL, actualSQL string) error { +var QueryMatcherRegexp QueryMatcher = QueryMatcherFunc(func(expectedSQL, actualSQL string) error { expect := stripQuery(expectedSQL) actual := stripQuery(actualSQL) + if actual != "" && expect == "" { + return fmt.Errorf("expectedSQL can't be empty") + } re, err := regexp.Compile(expect) if err != nil { return err diff --git a/query_test.go b/query_test.go index 0ba7bdc..514a6ad 100644 --- a/query_test.go +++ b/query_test.go @@ -69,6 +69,7 @@ func TestQueryMatcherRegexp(t *testing.T) { {"SELECT (.+) FROM users", "SELECT name, email FROM users WHERE id = ?", nil}, {"Select (.+) FROM users", "SELECT name, email FROM users WHERE id = ?", fmt.Errorf(`could not match actual sql: "SELECT name, email FROM users WHERE id = ?" with expected regexp "Select (.+) FROM users"`)}, {"SELECT (.+) FROM\nusers", "SELECT name, email\n FROM users\n WHERE id = ?", nil}, + {"","SELECT from table", fmt.Errorf(`expectedSQL can't be empty`)}, } for i, c := range cases {