1
sql.Rowsの構造体へのスキャンを実行するテスト/モック関数の良い習慣はありますか?テスト可能なデータベース/ sql sql.Rows in go
func parseUsers(r *sql.Rows) (users []User, err error) {
for r.Next() {
var u User
if err = r.Scan(&u.Username,
&u.DisplayName,
&u.EmailAddress,
&u.IsEnabled,
&u.PhoneNumber); err != nil {
return []User{}, err
}
users = append(users, u)
}
err = r.Err()
return
}
しかし、のような何かやろうとしている。
func TestParseUsers(t *testing.T) {
//make mock sql.Rows
u, err := parseUsers(fakeRows)
//Do tests...
}
を私はSQLX見てきましたが、データベース/ SQL構造を維持したいと思います。私はgo-sqlmockをチェックしましたが、大きなビルドなしで何かを探しています。
この種のテストには良い戦略がありますか?
これはまさに私が探していたものです。私は、構造体の代わりにinterface {}を取るようにスキャナインタフェースのアイデアを変えましたが、私が必要としていたのは正確です。 – TaylorBarrick