1
0
mirror of https://github.com/DATA-DOG/go-sqlmock.git synced 2025-03-19 20:57:50 +02:00

Merge pull request #326 from co60ca/master

Modify: existing panic in AddRow to give a hint to the issue
This commit is contained in:
Jessie A. Morris 2023-10-19 16:22:07 -06:00 committed by GitHub
commit b2d135c5e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 1 deletions

View File

@ -166,7 +166,7 @@ func (r *Rows) RowError(row int, err error) *Rows {
// of columns
func (r *Rows) AddRow(values ...driver.Value) *Rows {
if len(values) != len(r.cols) {
panic("Expected number of values to match number of columns")
panic(fmt.Sprintf("Expected number of values to match number of columns: expected %d, actual %d", len(values), len(r.cols)))
}
row := make([]driver.Value, len(r.cols))

View File

@ -730,6 +730,31 @@ func TestAddRows(t *testing.T) {
// scanned id: 4 and title: Emily
}
func TestAddRowExpectPanic(t *testing.T) {
t.Parallel()
const expectedPanic = "Expected number of values to match number of columns: expected 1, actual 2"
values := []driver.Value{
"John",
"Jane",
}
defer func() {
if r := recover(); r != nil {
if r != expectedPanic {
t.Fatalf("panic message did not match expected: expected '%s', actual '%s'", r, expectedPanic)
}
return
}
t.Fatalf("expected panic: %s", expectedPanic)
}()
rows := NewRows([]string{"id", "name"})
// Note missing spread "..."
rows.AddRow(values)
}
func ExampleRows_AddRows() {
db, mock, err := New()
if err != nil {