Skip to content

Commit b2d135c

Browse files
Merge pull request DATA-DOG#326 from co60ca/master
Modify: existing panic in AddRow to give a hint to the issue
2 parents b2f0b45 + e427030 commit b2d135c

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

rows.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func (r *Rows) RowError(row int, err error) *Rows {
166166
// of columns
167167
func (r *Rows) AddRow(values ...driver.Value) *Rows {
168168
if len(values) != len(r.cols) {
169-
panic("Expected number of values to match number of columns")
169+
panic(fmt.Sprintf("Expected number of values to match number of columns: expected %d, actual %d", len(values), len(r.cols)))
170170
}
171171

172172
row := make([]driver.Value, len(r.cols))

rows_test.go

+25
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,31 @@ func TestAddRows(t *testing.T) {
730730
// scanned id: 4 and title: Emily
731731
}
732732

733+
func TestAddRowExpectPanic(t *testing.T) {
734+
t.Parallel()
735+
736+
const expectedPanic = "Expected number of values to match number of columns: expected 1, actual 2"
737+
values := []driver.Value{
738+
"John",
739+
"Jane",
740+
}
741+
742+
defer func() {
743+
if r := recover(); r != nil {
744+
if r != expectedPanic {
745+
t.Fatalf("panic message did not match expected: expected '%s', actual '%s'", r, expectedPanic)
746+
}
747+
748+
return
749+
}
750+
t.Fatalf("expected panic: %s", expectedPanic)
751+
}()
752+
753+
rows := NewRows([]string{"id", "name"})
754+
// Note missing spread "..."
755+
rows.AddRow(values)
756+
}
757+
733758
func ExampleRows_AddRows() {
734759
db, mock, err := New()
735760
if err != nil {

0 commit comments

Comments
 (0)