单元测试中的模拟是在单元测试中创建测试替身以替换外部依赖项的技术,允许隔离和测试特定函数。基本原则是:定义接口、创建模拟、注入模拟。使用 googlemock 模拟,需要定义接口、创建模拟、在测试函数中注入它。使用 testify/mock 模拟,需要声明 mockclient 结构体、为 get 方法设置期望值、在测试函数中设置模拟。
Go 函数单元测试中的模拟技巧
在单元测试中,模拟(mocking)是一种创建测试替身的技术,用于替换被测代码中的外部依赖。这允许您隔离和测试特定函数,而无需与其他组件交互。
模拟的基本原则
模拟的基本原则是:
- 定义接口: 创建一个代表要模拟组件的接口。
- 创建模拟: 创建该接口的模拟实现,该模拟可以定义预期调用和返回的值。
- 注入模拟: 在测试函数中,使用模拟替换实际依赖项。
实战案例
考虑以下使用 net/http
包的函数:
func GetPage(url string) (*http.Response, error) { client := http.Client{} return client.Get(url) }