olth,伙计们!今天,我们将学习如何以Poke API为例在Golang创建单元测试。基本单元测试以确保代码的质量并促进维护。让我们走!
prâ©-Requisitos: p>
- 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创建单元测试。单位测试是确保其应用的鲁棒性和可靠性的重要实践。继续练习和提高您的技能! ð