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