-2
如何從單列一行如何從一個單行斷言多個值,在一行中轉到
assert.Equal(t, expected_1, actual_1, expected_2, actual_2...)
我當前的代碼斷言多個值:
// act
row := tx.QueryRow("select operation, primary_key, before_change, change, changed_at from foo.bar = 'I' order by 1 desc limit 1;")
c := columns{}
row.Scan(&c.operation, &c.primaryKey, &c.beforeChange, &c.change, &c.changedAt)
assert.Equal(t, 0, c.primaryKey)
assert.Equal(t, "I", c.operation)
assert.Equal(t, "", c.beforeChange)
assert.Equal(t, "", c.change)
assert.NotEmpty(t, c.changedAt)
任何幫助非常感謝。
你需要一個庫來做到這一點;可能通過自己寫。但這是非常單一的,所以我建議不要這樣做。 – Flimzy
測試斷言是其中更爲詳細的實際情況之一,而不是試圖儘可能簡潔和緊湊。 – Kaedys
另一種選擇是對所有「c」進行深層次的比較,而不是單個字段。但正如@ Kaedys所表明的那樣,測試越細化,通常就越有用。 – Flimzy