@@ -654,17 +654,28 @@ func Test_sqlmock_Exec(t *testing.T) {
654654 t .Errorf ("an error '%s' was not expected when opening a stub database connection" , err )
655655 }
656656 defer db .Close ()
657- query := "SELECT name, email FROM users WHERE name = ?"
657+
658+ mock .ExpectBegin ()
659+ _ , err = mock .(* sqlmock ).Exec ("" , []driver.Value {})
660+ if err == nil {
661+ t .Errorf ("error expected" )
662+ return
663+ }
658664
659665 expected := NewResult (1 , 1 )
660666 mock .ExpectExec ("SELECT (.+) FROM users WHERE (.+)" ).
661667 WillReturnResult (expected ).
662668 WithArgs ("test" )
663669
670+ matchErr := errors .New ("matcher sqlmock.failArgument could not match 0 argument driver.NamedValue - {Name: Ordinal:1 Value:{}}" )
664671 mock .ExpectExec ("SELECT (.+) FROM animals WHERE (.+)" ).
665- WillReturnError (errors . New ( "matcher %T could not match %d argument %T - %+v" ) ).
672+ WillReturnError (matchErr ).
666673 WithArgs (failArgument {})
667674
675+ mock .ExpectExec ("" ).WithArgs (failArgument {})
676+
677+ mock .(* sqlmock ).expected = mock .(* sqlmock ).expected [1 :]
678+ query := "SELECT name, email FROM users WHERE name = ?"
668679 result , err := mock .(* sqlmock ).Exec (query , []driver.Value {"test" })
669680 if err != nil {
670681 t .Error (err )
@@ -675,7 +686,14 @@ func Test_sqlmock_Exec(t *testing.T) {
675686 return
676687 }
677688
678- _ , err = mock .(* sqlmock ).Exec (query , []driver.Value {failArgument {}})
689+ failQuery := "SELECT name, sex FROM animals WHERE sex = ?"
690+ _ , err = mock .(* sqlmock ).Exec (failQuery , []driver.Value {failArgument {}})
691+ if err == nil {
692+ t .Errorf ("error expected" )
693+ return
694+ }
695+ mock .(* sqlmock ).ordered = false
696+ _ , err = mock .(* sqlmock ).Exec ("" , []driver.Value {failArgument {}})
679697 if err == nil {
680698 t .Errorf ("error expected" )
681699 return
@@ -697,4 +715,9 @@ func Test_sqlmock_Query(t *testing.T) {
697715 return
698716 }
699717 defer rows .Close ()
718+ _ , err = mock .(* sqlmock ).Query (query , []driver.Value {failArgument {}})
719+ if err == nil {
720+ t .Errorf ("error expected" )
721+ return
722+ }
700723}
0 commit comments