1

私はいくつかの単体テストを書いていますが、次のメソッドのテストを書くのに行き詰まっています:

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)

私は testify mock を使ってみましたが、それは不可能のようです。

私は何か間違ったことをしていますか?

ありがとう。

4

1 に答える 1

0

依存性注入を介して抽出database.DoesKeyExistし、単体テストで最初に true を返す関数を提供できます。詳細http://openmymind.net/Dependency-Injection-In-Go/

于 2016-07-02T11:44:40.380 に答える