Как проверить этот простой метод с 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) в моем тесте.

Я пытался использовать testify макет, но это не представляется возможным.

Я делаю что-то неправильно?

Благодарю.

1 ответ

Вы можете извлечь database.DoesKeyExist посредством внедрения зависимостей и предоставления функции, которая возвращает true впервые в модульных тестах. Более подробная информация http://openmymind.net/Dependency-Injection-In-Go/

Другие вопросы по тегам