Cara Menguji Aplikasi Go yang Dibaca daripada Stdin: Panduan dengan Pembaca dan Penulis Olok-olok

Patricia Arquette
Lepaskan: 2024-10-26 17:32:30
asal
892 orang telah melayarinya

How to Test Go Applications That Read from Stdin: A Guide with Mock Readers and Writers

Menguji Aplikasi Go yang Menulis kepada Stdin

Panduan ini menunjukkan cara menulis kes ujian Go yang berinteraksi dengan aplikasi pembacaan stdin. Pertimbangkan contoh aplikasi di bawah:

<code class="go">package main

import (
    "bufio"
    "fmt"
    "io"
    "os"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    for {
        fmt.Print("> ")
        bytes, _, err := reader.ReadLine()
        if err == io.EOF {
            os.Exit(0)
        }
        fmt.Println(string(bytes))
    }
}</code>
Salin selepas log masuk

Mencipta Kes Ujian

Untuk menguji kefungsian stdin aplikasi ini, kami mentakrifkan fungsi berasingan yang berbunyi daripada io.Reader dan menulis kepada io.Writer:

<code class="go">func testFunction(input io.Reader, output io.Writer) {
    // Your test logic here...
}</code>
Salin selepas log masuk

Mengubah suai fungsi utama

Dalam fungsi utama, kami memanggil testFunction dengan stdin dan stdout sebagai argumen:

<code class="go">func main() {
    testFunction(os.Stdin, os.Stdout)
}</code>
Salin selepas log masuk

Menulis Kes Ujian

Dalam kes ujian kami, kini kami boleh terus menguji testFunction menggunakan mock io.Reader dan io.Writer:

<code class="go">func TestInput(t *testing.T) {
    input := "abc\n"
    output := &bytes.Buffer{}

    inputReader := bytes.NewReader([]byte(input))
    testFunction(inputReader, output)

    if got := output.String(); got != input {
        t.Errorf("Wanted: %v, Got: %v", input, got)
    }
}</code>
Salin selepas log masuk

Dengan menggunakan pendekatan ini, anda boleh menguji aplikasi yang menulis ke stdin dengan berkesan, mengasingkan logik ujian daripada selok-belok pengurusan stdin dan stdout dalam fungsi utama.

Atas ialah kandungan terperinci Cara Menguji Aplikasi Go yang Dibaca daripada Stdin: Panduan dengan Pembaca dan Penulis Olok-olok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!