【发布时间】:2017-12-06 13:48:21
【问题描述】:
我的帖子有 2 个问题
我基本上是想了解如何将 gomock 与 gingko 一起使用
GOPATH
/Users/Ratatouille/Desktop/test/goExample
以下项目位于
/Users/Ratatouille/Desktop/test/goExample/square
项目结构如下
.
├── area.go
└── area_test
├── area_mock.go
├── area_mock_test.go
└── area_suite_test.go
我无法理解为什么会出现以下错误
Failed to compile area_test:
can't load package: package ./area_test: found packages area_test (area_mock.go) and area (area_mock_test.go) in /Users/Ratatouille/Desktop/test/goExample/square/area_test
Ginkgo ran 1 suite in 303.243871ms
Test Suite Failed
我的第二个问题是项目 repo 有 area.go 文件,看起来像这样
package main
import "fmt"
type Square struct {
side float32
}
func (s *Square) Area() float32 {
return s.side * s.side
}
func (s *Square) CalculateArea(shaper Shaper) float32 {
shaper.Area()
}
type Shaper interface {
Area() float32
}
func main() {
sq1 := new(Square)
sq1.side = 2
var areaIntf Shaper
areaIntf = sq1
fmt.Println(areaIntf.Area())
}
我的问题是我如何导入 main 包内area_mock_test.go
【问题讨论】:
-
据我所知,
area_mock.go的包名应该是 area 而不是 area_test。area_mock_test.go的包名应该是 area_test 而不是 area。 -
@mattn 为什么我在 Go 方面相对较新。我的理解是文件中提到的
package名称采用文件所属的包。 area_mock.go 有package 'area_test' -
您的工作区设置完全错误。你的 go 源代码文件位于 $GOPATH/**src** 下面。阅读golang.org/doc/code.html 并坚持下去。请看一下标准库是如何进行测试的。就是这样完成的。
标签: go