Pergi: Nilai pulangan olok-olok fungsi dalam ujian unit

王林
Lepaskan: 2024-02-09 23:39:09
ke hadapan
1212 orang telah melayarinya

Pergi: Nilai pulangan olok-olok fungsi dalam ujian unit

Dalam pembangunan perisian, ujian unit ialah tugas yang sangat penting, yang boleh membantu pembangun memastikan kualiti dan kebolehpercayaan kod. Dalam bahasa Go, kita boleh menggunakan beberapa perpustakaan dan teknologi untuk mensimulasikan nilai pulangan fungsi untuk ujian unit yang lebih baik. Dalam artikel ini, editor PHP Xiaoxin akan memperkenalkan kepada anda kaedah melaksanakan nilai pulangan simulasi fungsi dalam bahasa Go untuk membantu pembangun menjalankan ujian unit dengan lebih baik dan meningkatkan kualiti serta kebolehselenggaraan kod.

Kandungan soalan

Saya mencipta skrip kecil dalam golang (projek golang pertama saya).

Contoh:

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    i := rand.Intn(10)
    foo := foo(i)

    if foo {
        fmt.Printf("%d is even!", i)
        // more code ... 
    } else {
        fmt.Printf("%d is odd!", i)
        // more code ... 
    }
}

func foo(i int) bool {
    if i%2 == 0 {
        return true
    } else {
        return false
    }
}
Salin selepas log masuk

Saya ingin membuat ujian unit kecil untuk setiap fungsi. Untuk "main()" saya ingin mengejek nilai pulangan fungsi "foo()" kerana saya tidak akan menguji "foo()" tetapi kod main() yang lain.

Saya sedang mencari cara mudah untuk stub/mengejek nilai pulangan. Saya baru sahaja menemui ejekan dengan struktur atau antara muka dsb. Tetapi saya tidak menggunakan elemen ini dalam kod (ia adalah projek mudah).

Penyelesaian

Gunakan contoh yang realistik, minimum, boleh dihasilkan semula: Cara mencipta contoh minimum yang boleh dibuat semula.

Sebagai contoh, dalam perjalanan,

package main

import (
    "fmt"
    "math/rand"
)

func iseven(i int) bool {
    return i%2 == 0
}

func side(n int) string {
    if iseven(n) {
        return "right"
    } else {
        return "left"
    }
}

func main() {
    n := 1 + rand.intn(10)
    hand := side(n)
    fmt.printf("number %d is on the %s-hand side of the street.\n", n, hand)
}
Salin selepas log masuk

https://www.php.cn/link/7c63a554c36ea63c77723a472b7ca20f

number 9 is on the left-hand side of the street.
Salin selepas log masuk

Gunakan pakej ujian go untuk side函数进行单元测试。您还可以直接对 iseven 函数进行单元测试。 main fungsi tidak boleh mengandungi sebarang kod untuk diuji unit.

package main

import (
    "testing"
)

func TestSide(t *testing.T) {
    n := 7
    got := side(n)
    want := "left"
    if got != want {
        t.Errorf("side(%d) = %s; want %s", n, got, want)
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Pergi: Nilai pulangan olok-olok fungsi dalam ujian unit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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
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!