如何使用Golang实施单元测试程序?

时间:2018-07-19 03:35:22

标签: unit-testing testing go

我看到很多博客都写了如何进行单元测试,但是我会理解理论部分而不理解如何执行测试用例,谁能告诉我我将如何实现第一个测试用例以进一步理解单元测试。在这里,我正在平均实施小程序:-

文件夹结构为:-

main.go
average(Folder)----> math_test.go
两个文件中的

code是:-

main.go

 package main

 import "fmt"
 import "testcases/average"

 func main() {
    xs := []float64{1,2,3,4}
    avg := m.Average(xs)
    fmt.Println(avg) 
 }

math_test.go

package math

import "testing"

func TestAverage(t *testing.T) {
  var v float64
  v = Average([]float64{1,2})
  if v != 1.5 {
    t.Error("Expected 1.5, got ", v)
  }
 }
  

错误:-建立测试用例/平均:/ home / iron / go / src / testcases / average中没有非测试Go文件

帮助我,我非常感谢您。

2 个答案:

答案 0 :(得分:0)

这是因为您的测试文件位于package main中。您可以将main.go更改为package math,也可以将math_test.go更改为package main。检查我的git repo here我没有编写任何主要功能。尚未编写函数,并使用testing程序包检查了它们的输出。

答案 1 :(得分:0)

您必须用char(F.labels)main更改软件包名称,如@mkopriva和@whitespace所说,并将它们放置在同一文件夹中,如示例

main.go

math

math_test.go

package main


func Sum(x int, y int) int {
  return x + y
}

func main() {
  Sum(5, 5)
}

输出:-

  

通过   好的测试用例0.001s

也是测试的基本示例。