现在 go 更新功能代码并不更新测试代码是不是也会更新缓存了?

AI摘要
用户询问Go测试缓存机制是否会导致修改代码后测试不更新。DeepSeek回复该问题已在Go 1.19修复,但用户仍不确定自己的操作是否正确。这是技术问题咨询,核心是验证测试缓存行为。

Go 为了提高测试的性能,会对包的编译后的测试代码进行缓存。
《G01 Go 实战:Web 入门》

代码:

// math.go
package main

func Add(a, b int) int {
    return a + b
}

// math_test.go
package main

import "testing"

func TestAdd(t *testing.T) {
    result := Add(2, 3)
    if result != 5 {
        t.Errorf("Expected 5, got %d", result)
    }
}

把 return a + b 改成 return a + b + 1 过不了测试。
命令 go test。

我问了一下 DeepSeek 这种不更新缓存是不是个缺陷。它说这个在 1.19 之后就修复了。

不知道是不是我搞错了什么,不敢确定。所以来问了一下。

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!