Kod ujian yang menggunakan JSON dalam Go adalah penting dan artikel ini menyediakan langkah berikut: Tulis data JSON, pengekodan kepada kepingan bait menggunakan json.Marshal. Nyahkod data JSON, menghuraikan daripada kepingan bait ke struct menggunakan json.Unmarshal.
Cara menguji kod yang menggunakan JSON dalam Golang
Kod ujian yang menggunakan JSON di Golang adalah penting untuk memastikan keteguhan aplikasi anda. Artikel ini akan membimbing anda melalui langkah-langkah berikut untuk menguji:
1. Tulis data JSON
import ( "encoding/json" "fmt" "testing" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func TestEncodeJSON(t *testing.T) { person := Person{Name: "John", Age: 30} b, err := json.Marshal(person) if err != nil { t.Errorf("Error encoding JSON: %v", err) } expected := `{"name":"John","age":30}` if string(b) != expected { t.Errorf("Expected '%s', got '%s'", expected, string(b)) } }
2 Nyahkod data JSON
func TestDecodeJSON(t *testing.T) { jsonStr := `{"name":"Mary","age":25}` person := Person{} err := json.Unmarshal([]byte(jsonStr), &person) if err != nil { t.Errorf("Error decoding JSON: %v", err) } expected := Person{Name: "Mary", Age: 25} if person != expected { t.Errorf("Expected '%v', got '%v'", expected, person) } }
Kes praktikal
a fungsi konfigurasi JSON yang dibaca:func LoadConfig(path string) (Config, error) { b, err := ioutil.ReadFile(path) if err != nil { return Config{}, err } config := Config{} err = json.Unmarshal(b, &config) if err != nil { return Config{}, err } return config, nil }
membaca fail JSON dengan betul: LoadConfig
func TestLoadConfig(t *testing.T) { // 创建一个包含 JSON 数据的临时文件 f, err := ioutil.TempFile("", "config") if err != nil { t.Errorf("Error creating temporary file: %v", err) } defer os.Remove(f.Name()) _, err = f.WriteString(`{"key":"value"}`) if err != nil { t.Errorf("Error writing to temporary file: %v", err) } if err := f.Close(); err != nil { t.Errorf("Error closing temporary file: %v", err) } config, err := LoadConfig(f.Name()) if err != nil { t.Errorf("Error loading config: %v", err) } expected := Config{Key: "value"} if config != expected { t.Errorf("Expected '%v', got '%v'", expected, config) } }
Atas ialah kandungan terperinci Bagaimana untuk menguji kod menggunakan JSON di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!