如何用Go测试这个简单的方法?

时间:2016-07-02 09:45:26

标签: testing go testify

我正在编写一些单元测试,而且我很难为以下方法编写测试:

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,但似乎不可能。

我做错了吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过依赖注入提取database.DoesKeyExist并提供一个在单元测试中第一次返回true的函数。更多详情http://openmymind.net/Dependency-Injection-In-Go/