My source files tree is like this:
/src
/pkg
/foo
foo.go
foo_test.go
Inside foo.go
:
package foo
func bar(n int) {
...
}
inside foo_test.go
:
package foo
func testBar(t *testing.T) {
bar(10)
...
}
My questions are:
foo.go
and foo_test.go
in the same package?foo_test.go
, as it's in the same package as foo.go
, I didn't import foo
. But when I compile foo_test.go
with 6g, it says bar() is undefined
. What should I do?1 - The language spec says the following:
A set of files sharing the same PackageName form the implementation of a package. An implementation may require that all source files for a package inhabit the same directory.
So it seems that there is no requirement on the naming of files / directories, but it would be safer to put all file that form a package in one directory.
2 - Obviously the file must be in some directory. I assume you mean "should I put it in a subdirectory of src
?" It seems to me based on the above quote that you could have all your files in src
directly if you really wanted to.
3 - Yes.
4 - Use go test
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With