package filex import ( "os" "path/filepath" "testing" ) func TestPathExistsAndWorkDir(t *testing.T) { exists, err := PathExists(".") if err != nil || !exists { t.Errorf("PathExists(.) = %v, %v, want true", exists, err) } if exists, _ := PathExists(filepath.Join(t.TempDir(), "not-exist")); exists { t.Error("不存在的路径应返回 false") } if GetWorkDir() == "" { t.Error("GetWorkDir 不应为空") } } func TestZipAndUnzip(t *testing.T) { dir := t.TempDir() src := filepath.Join(dir, "src", "inner") if err := os.MkdirAll(src, 0755); err != nil { t.Fatal(err) } if err := os.WriteFile(filepath.Join(src, "hello.txt"), []byte("zip content"), 0644); err != nil { t.Fatal(err) } zipPath := filepath.Join(dir, "src.zip") if err := Zip(filepath.Join(dir, "src"), zipPath); err != nil { t.Fatalf("Zip: %v", err) } dest := filepath.Join(dir, "out") if err := Unzip(zipPath, dest); err != nil { t.Fatalf("Unzip: %v", err) } data, err := os.ReadFile(filepath.Join(dest, "src", "inner", "hello.txt")) if err != nil { t.Fatalf("读取解压文件: %v", err) } if string(data) != "zip content" { t.Errorf("解压内容 = %q", string(data)) } }