2016-07-02 8 views
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)を私のテストで見つけました。

私は証言モックを使ってみましたが、それは可能ではないようです。

何か間違っていますか?

ありがとうございました。

+0

使用しているDBエンジンについては言及していませんが、ほとんどのリレーショナルデータベースにはキー(シーケンス、自動入力フィールド)を生成する手段があります。クライアント側でキーを生成する代わりに、これらを使用することをお勧めします。 – ain

+0

私はBoltDBを使用しています –

+0

私はそれを自分で使っていませんが、キーのautoincを持っているようです:https://github.com/boltdb/bolt#autoincrementing-integer-for-the-bucket – ain

答えて

関連する問題