Skip to content

Commit b465b1f

Browse files
committed
refers to #37
1 parent 55a0289 commit b465b1f

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

sqlmock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,6 @@ func (c *sqlmock) Query(query string, args []driver.Value) (rw driver.Rows, err
340340
}
341341

342342
defer expected.Unlock()
343-
expected.triggered = true
344343

345344
if !expected.queryMatches(query) {
346345
return nil, fmt.Errorf("query '%s', does not match regex [%s]", query, expected.sqlRegex.String())
@@ -358,6 +357,7 @@ func (c *sqlmock) Query(query string, args []driver.Value) (rw driver.Rows, err
358357
return nil, fmt.Errorf("query '%s' with args %+v, must return a database/sql/driver.rows, but it was not set for expectation %T as %+v", query, args, expected, expected)
359358
}
360359

360+
expected.triggered = true
361361
return expected.rows, err
362362
}
363363

sqlmock_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,3 +658,35 @@ func ExampleSqlmock_goroutines() {
658658
}
659659
// Output:
660660
}
661+
662+
// False Positive - passes despite mismatched Exec
663+
// see #37 issue
664+
func TestRunExecsWithOrderedShouldNotMeetAllExpectations(t *testing.T) {
665+
db, dbmock, _ := New()
666+
dbmock.ExpectExec("THE FIRST EXEC")
667+
dbmock.ExpectExec("THE SECOND EXEC")
668+
669+
_, _ = db.Exec("THE FIRST EXEC")
670+
_, _ = db.Exec("THE WRONG EXEC")
671+
672+
err := dbmock.ExpectationsWereMet()
673+
if err == nil {
674+
t.Fatal("was expecting an error, but there wasn't any")
675+
}
676+
}
677+
678+
// False Positive - passes despite mismatched Exec
679+
// see #37 issue
680+
func TestRunQueriesWithOrderedShouldNotMeetAllExpectations(t *testing.T) {
681+
db, dbmock, _ := New()
682+
dbmock.ExpectQuery("THE FIRST EXEC")
683+
dbmock.ExpectQuery("THE SECOND EXEC")
684+
685+
_, _ = db.Query("THE FIRST EXEC")
686+
_, _ = db.Query("THE WRONG EXEC")
687+
688+
err := dbmock.ExpectationsWereMet()
689+
if err == nil {
690+
t.Fatal("was expecting an error, but there wasn't any")
691+
}
692+
}

0 commit comments

Comments
 (0)