我正在编写一些单元测试,而且我很难为以下方法编写测试:
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,但似乎不可能。
我做错了吗?
感谢。
答案 0 :(得分:0)
您可以通过依赖注入提取database.DoesKeyExist
并提供一个在单元测试中第一次返回true的函数。更多详情http://openmymind.net/Dependency-Injection-In-Go/