登录
首页 >  Golang >  Go问答

使用 go-git 进行单元测试的方法

来源:stackoverflow

时间:2024-02-25 09:27:23 240浏览 收藏

哈喽!今天心血来潮给大家带来了《使用 go-git 进行单元测试的方法》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

如何为使用 git-go 克隆存储库的代码编写单元测试

下面是我创建的函数的示例。我正在克隆多个存储库并读取该存储库中的特定文件,我不确定如何对该函数进行单元测试。

func cloneRepository(repository string) (repo beans.Repo) {

    dir, err := os.MkdirTemp("./", "temp") //To create a temp folder to clone repo in
    if err != nil...
    
    _, err := git.PlainClone(dir, false, &git.CloneOptions{
               URL: repository,
               Depth: 1,
              })

    var repo beans.Repo
    if err = util.ParseYmlFile("filename.yml", &repo) // Custom util function to parse a file in the repository

    if err = os.RemoveAll(dir); err != nil{...}

   return repo

}

正确答案


您可以模拟 git.PlainClone() 函数,以便它返回用于测试的自定义文件。

看看 spf13's lib,它提供了文件系统模拟解决方案!

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用 go-git 进行单元测试的方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>