package app import ( "os" "path/filepath" "strings" "testing" ) func TestWriteFileWithBackup(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "user.txt") original := []byte("# 账号\r\nfoo----bar----cookie\r\n") updated := []byte("# 账号\r\n") if err := os.WriteFile(path, original, 0640); err != nil { t.Fatalf("写入原始账号文件失败: %v", err) } backupPath, err := writeFileWithBackup(path, updated) if err != nil { t.Fatalf("writeFileWithBackup 返回错误: %v", err) } if backupPath == "" { t.Fatal("backupPath 为空") } got, err := os.ReadFile(path) if err != nil { t.Fatalf("读取更新后账号文件失败: %v", err) } if string(got) != string(updated) { t.Fatalf("更新后账号文件内容 = %q, want %q", got, updated) } backup, err := os.ReadFile(backupPath) if err != nil { t.Fatalf("读取备份文件失败: %v", err) } if string(backup) != string(original) { t.Fatalf("备份文件内容 = %q, want %q", backup, original) } entries, err := os.ReadDir(dir) if err != nil { t.Fatalf("读取临时目录失败: %v", err) } for _, entry := range entries { if strings.HasSuffix(entry.Name(), ".tmp") { t.Fatalf("发现残留临时文件: %s", entry.Name()) } } }