1
私はいくつかのユニットテストを書いている、と私は、次の方法のためのテストを書くこだわっている:Goでこの簡単な方法をテストするには?
func (database *Database) FindUnusedKey() string {
count := 0
possibleKey := helpers.RandomString(helpers.Config.KeySize)
for database.DoesKeyExist(possibleKey) {
possibleKey = helpers.RandomString(helpers.Config.KeySize + uint8(count/10))
count++
}
return possibleKey
}
私はhelpers.RandomString(int)
はすでに私のデータベースで鍵となる文字列を返すにテストをしたいが、私は再テストする方法やサルパッチhelpers.RandomString(int)
を私のテストで見つけました。
私は証言モックを使ってみましたが、それは可能ではないようです。
何か間違っていますか?
ありがとうございました。
使用しているDBエンジンについては言及していませんが、ほとんどのリレーショナルデータベースにはキー(シーケンス、自動入力フィールド)を生成する手段があります。クライアント側でキーを生成する代わりに、これらを使用することをお勧めします。 – ain
私はBoltDBを使用しています –
私はそれを自分で使っていませんが、キーのautoincを持っているようです:https://github.com/boltdb/bolt#autoincrementing-integer-for-the-bucket – ain