Rumah >pembangunan bahagian belakang >Golang >Pergi: Nilai pulangan olok-olok fungsi dalam ujian unit

Pergi: Nilai pulangan olok-olok fungsi dalam ujian unit

王林
王林ke hadapan
2024-02-09 23:39:091253semak imbas

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
    }
}

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)
}

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

number 9 is on the left-hand side of the street.

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)
    }
}

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam