使用POKE API在Golang中创建单元测试
#测试 #go #backend #pokemon

olth,伙计们!今天,我们将学习如何以Poke API为例在Golang创建单元测试。基本单元测试以确保代码的质量并促进维护。让我们走!

prâ©-Requisitos:

  • ter或go(golang)安装了没有系统。
  • 拥有您的喜好编辑(Vscode,Goland,Sublime等)。

步骤1:环境配置

请确保将GO开发环境正确配置在您的母亲身上。您可以通过在终端上运行GO版本命令来检查此内容。

步骤2:依赖的安装

要执行要求âpoke api,我们将使用go的库“ net/http”。确保安装它。如果不是,请在终端运行以下命令:

go get -u net/http

步骤3:创建代码

现在,让我们创建我们的代码和测试。让我们创建一个函数,咨询POKE API以获取有关特定Pokage的信息。意识到这将如下(让我们假设它在pokeapi.go文件中):


package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

// Pokemon representa a estrutura de dados do Pokémon
type Pokemon struct {
    Name         string `json:"name"`
    Height       int    `json:"height"`
    Weight       int    `json:"weight"`
    BaseExperience int  `json:"base_experience"`
}

// GetPokemonInfo faz uma requisição à Poke API e retorna as informações de um Pokémon específico.
func GetPokemonInfo(pokemonName string) (*Pokemon, error) {
    url := fmt.Sprintf("https://pokeapi.co/api/v2/pokemon/%s", pokemonName)

    resp, err := http.Get(url)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        return nil, fmt.Errorf("failed to get Pokemon info: %s", resp.Status)
    }

    var pokemon Pokemon
    if err := json.NewDecoder(resp.Body).Decode(&pokemon); err != nil {
        return nil, err
    }

    return &pokemon, nil
}

步骤4:创建单元测试

现在,让我们为GetPokeMonInfo函数创建单元测试。为此,我们将创建一个名为pokeapi_test.go的新文件:


package main

import (
    "testing"
)

func TestGetPokemonInfo(t *testing.T) {
    pokemonName := "pikachu"
    pokemon, err := GetPokemonInfo(pokemonName)

    if err != nil {
        t.Errorf("Error while getting Pokemon info: %v", err)
    }

    if pokemon.Name != pokemonName {
        t.Errorf("Expected Pokemon name '%s', but got '%s'", pokemonName, pokemon.Name)
    }

    // Aqui você pode adicionar mais verificações para os outros campos do Pokémon
}

步骤5:执行测试

现在已经准备好测试,让我们执行它们,看看一切是否正常工作。在终端中,浏览pokeapi.go和pokeapi_test.go文件的正确权利,并运行以下命令:

go test

如果一切都正确,您会看到一条消息,表明测试已通过。如果有任何测试错过,错误消息将详细说明发生的事情。

准备好了!现在,您已经学习了如何以Poke API为例在Golang创建单元测试。单位测试是确保其应用的鲁棒性和可靠性的重要实践。继续练习和提高您的技能! ð