问题
我想知道t.Cleanup
Go1.14中引入的用例。与使用 defer 相比,t.Cleanup 有什么便利?
https://golang.org/pkg/testing/#T.Cleanup。
- 样本
例如,假设我们创建了一个临时目录,当我们测试它时,我们想删除我们创建的临时目录。
t.Cleanup
可用于编写测试,如下所示,但它也可以用作defer os.RemoveAll(tempDir)
.
package mypkg
import (
"io/ioutil"
"os"
"testing"
)
func TestDirwalk(t *testing.T) {
tempDir, err := ioutil.TempDir(".", "temp")
if err != nil {
t.Errorf("create tempDir: %v", err)
}
t.Cleanup(func() { os.RemoveAll(tempDir) })
// something...
}