
在 Go 测试中模拟上下文取消
上下文取消是 Go 中一个强大的工具,用于控制协程的生命周期。在测试中模拟上下文取消对于验证处理取消的情况是否正确非常重要。
使用 context.WithCancel
模拟上下文取消的最简单方法是使用 [context.WithCancel](https://pkg.go.dev/context#WithCancel) 函数。它会创建一个新的上下文,其中包含一个取消函数:
ctx, cancel := context.WithCancel(context.Background())
cancel 函数可用于取消上下文:
Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
cancel()
实战案例
考虑以下函数,该函数从信道读取值,直到上下文被取消:
func ReadValues(ctx context.Context, ch <p><strong>测试模拟取消</strong></p><p>为了测试此函数,可以在测试中模拟上下文取消:</p><pre class="brush:go;toolbar:false;">func TestReadValues(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
values := []int{1, 2, 3}
ch := make(chan int, len(values))
for _, v := range values {
ch <p>这将测试 <code>ReadValues</code> 函数在上下文被取消时处理值的行为。</p>golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










