小编abh*_*hda的帖子

如何在 Go lang 中为多个单元测试模拟 exec.Command?

我刚刚学习了使用exec.Command()ie, mocking 的单元测试函数exec.Command()。我继续添加更多单元案例,但遇到了无法模拟不同场景输出的问题。

这是hello.go我正在尝试测试的示例代码...

package main

import (
    "fmt"
    "os/exec"
)

var execCommand = exec.Command

func printDate() ([]byte, error) {
    cmd := execCommand("date")
    out, err := cmd.CombinedOutput()
    return out, err
}

func main() {
    fmt.Printf("hello, world\n")
    fmt.Println(printDate())
}
Run Code Online (Sandbox Code Playgroud)

下面是测试代码hello_test.go...

package main

import (
    "fmt"
    "os"
    "os/exec"
    "testing"
)

var mockedExitStatus = 1
var mockedDate = "Sun Aug 20"
var expDate = "Sun Aug 20"

func fakeExecCommand(command string, args ...string) *exec.Cmd {
    cs …
Run Code Online (Sandbox Code Playgroud)

unit-testing go

5
推荐指数
1
解决办法
5319
查看次数

标签 统计

go ×1

unit-testing ×1