我的文件下面的樹結構:定義一個struct來_test.go文件只
-app/
---tool/
-----/tool_test.go
-----/tool.go
-----/proto/proto.go
-----/proto/proto_test.go
我需要使用(虛擬)結構在兩個tool_test.go
和proto_test.go
實現一個接口:
type DummyRetriever struct{}
func (dummy *DummyRetriever) Retrieve(name string) (string, error) {
return "", nil
}
如果我只在tool_test.go
中定義它,我不能在proto_test.go
中看到並使用它,因爲_test.go文件不會導出名稱。
我在哪裏定義DummyRetriever
,以便它們在兩個包中均可用? 我想避免讓它在文件中定義,以便在覈心(非測試)軟件包中顯示該名稱。
因此,其中一個做法是將mock放在一個單獨的包中https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1#f68c(請參閱#3) – zerkms
謝謝@zerkms,基本上與MahlerFive相同的答案.... – faboolous