Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie die Go-Standardbibliothek für Unit-Tests

So verwenden Sie die Go-Standardbibliothek für Unit-Tests

王林
王林Original
2024-04-30 18:39:02382Durchsuche

Die Go-Standardbibliothek bietet Unit-Testfunktionen über das Testpaket. Erstellen Sie einfach die Datei _test.go und schreiben Sie die Testfunktion. Testfunktionen verwenden Assertionsfunktionen wie AssertEqual und AssertTrue, um erwartete und tatsächliche Ergebnisse zu vergleichen. Informationen darüber, ob der Test bestanden wurde oder nicht, werden mit dem Befehl go test angezeigt.

如何使用 Go 标准库进行单元测试

So verwenden Sie die Go-Standardbibliothek für Unit-Tests

Die Go-Standardbibliothek stellt das Paket testing bereit, das umfangreiche Funktionen zum Schreiben und Ausführen von Unit-Tests bietet. In diesem Artikel erfahren Sie, wie Sie das Paket testing zum Testen Ihres Go-Codes verwenden. testing 包,它提供了丰富的功能,用于编写和运行单元测试。本文将指导你如何使用 testing 包来测试你的 Go 代码。

设置单元测试

要为 Go 程序设置单元测试,请按照以下步骤操作:

  1. 在项目的根目录中创建一个名为 your_package_name_test.go 的文件。
  2. 导入 testing 包:
import "testing"

编写测试函数

每个单元测试都作为一个独立的函数编写,名为 func TestX(t *testing.T)。其中 X 是测试案例的名称,而 t 是一个 *testing.T 类型的指针,它提供了用于执行测试、报告结果和记录错误的方法。

func TestPassingTest(t *testing.T) {
    // 测试用例的代码...
}

断言

testing 包提供了多种断言函数来比较测试结果和预期值。常用的断言函数包括:

  • AssertEqual(t, expected, actual):检查 expectedactual 是否相等
  • AssertNotEqual(t, value1, value2):检查 value1value2 是否不相等
  • AssertTrue(t, condition):断言条件 condition 为真
  • AssertFalse(t, condition):断言条件 condition 为假

实战案例

让我们为一个计算两个数字之和的函数编写一个单元测试。

package my_package

import (
    "testing"
)

func Sum(a, b int) int {
    return a + b
}

单元测试

import (
    "testing"

    "my_package"
)

func TestSum(t *testing.T) {
    tests := []struct {
        a        int
        b        int
        expected int
    }{
        {1, 2, 3},
        {5, 7, 12},
    }

    for _, tc := range tests {
        result := my_package.Sum(tc.a, tc.b)
        if result != tc.expected {
            t.Errorf("Sum(%d, %d) returned %d, expected %d", tc.a, tc.b, result, tc.expected)
        }
    }
}

在单元测试中,我们创建了一个 []struct 类型的测试用例列表,其中包含输入值和预期的输出。我们使用循环遍历测试用例,并针对每个用例使用 AssertEqual 断言来验证计算的结果与预期结果是否一致。

运行单元测试

要运行单元测试,可以在命令行中运行以下命令:

go test

它将在项目目录及其子目录中查找所有 _test.go

Komponententests einrichten

Um Komponententests für Ihr Go-Programm einzurichten, führen Sie die folgenden Schritte aus: 🎜
  1. Erstellen Sie eine Datei mit dem Namen your_package_name_test.go-Datei.
  2. testing-Paket importieren:
rrreee

Testfunktion schreiben

🎜Jeder Komponententest wird als unabhängige Funktion geschrieben. Sie heißt func TestX(t *testing.T). Dabei ist X der Name des Testfalls und t ein Zeiger vom Typ *testing.T, der Funktionen zum Ausführen von Tests und bereitstellt Berichterstattung Ergebnisse und Methoden zur Fehlererfassung. 🎜rrreee

Assertions

🎜Das testing-Paket bietet eine Vielzahl von Assertionsfunktionen, um Testergebnisse mit erwarteten Werten zu vergleichen. Zu den häufig verwendeten Assertionsfunktionen gehören: 🎜
  • AssertEqual(t, erwartet, tatsächlich): Überprüfen Sie, ob erwartet und tatsächlich gleich sind
  • AssertNotEqual(t, value1, value2): Prüfen Sie, ob value1 und value2 nicht gleich sind
  • AssertTrue(t, Bedingung): Bestätigen, dass die Bedingung Bedingung wahr ist
  • AssertFalse(t, Bedingung) : Bestätigen Sie, dass die Bedingungcondition falsch ist

Praktischer Fall

🎜Lassen Sie uns einen Komponententest für eine Funktion schreiben, die die Summe zweier Zahlen berechnet. 🎜rrreee🎜Unit-Testing🎜rrreee🎜Beim Unit-Testen erstellen wir eine Liste von Testfällen vom Typ []struct, die Eingabewerte und erwartete Ausgaben enthält. Wir verwenden eine Schleife, um die Testfälle zu durchlaufen, und verwenden AssertEqual-Zusicherungen für jeden Fall, um zu überprüfen, ob die berechneten Ergebnisse mit den erwarteten Ergebnissen übereinstimmen. 🎜

Komponententests ausführen

🎜Um Komponententests auszuführen, können Sie den folgenden Befehl in der Befehlszeile ausführen: 🎜rrreee🎜Es wird nach allen _test.goim Projektverzeichnis und gesucht deren Unterverzeichnisse > Datei und führen Sie die darin enthaltenen Tests aus. Bei erfolgreich ausgeführten Tests wird eine grüne „Bestanden“-Meldung angezeigt, während bei fehlgeschlagenen Tests eine rote Fehlermeldung angezeigt wird. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Go-Standardbibliothek für Unit-Tests. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn