Shared Code for Tests in Go Packages
In Go, organizing test code for a package can raise questions about where to place shared functions used across test files.
Issue:
A package contains multiple files, each with a corresponding test file. Test cases utilize common helper functions that should not dwell within the package source files.
Resolution:
Go allows test files to share code without explicit import statements. Simply instantiate the shared functions in any of the test files, making them available to other test files that use the same package clause.
For example:
<code class="go">package foo_test import "testing" func setupHelper() {} // Shared helper function func Test1(t *testing.T) { setupHelper() } func Test2(t *testing.T) { setupHelper() }</code>
Alternatively, test files can share code without creating a separate file for each.
<code class="go">package foo import "testing" func Test1(t *testing.T) { // Shared code can go here } func Test2(t *testing.T) { // Shared code can also go here }</code>
Note that test files may use the same package clause or distinct ones, affecting the visibility of identifiers between them.
The above is the detailed content of How to Share Code Between Test Files in Go Packages?. For more information, please follow other related articles on the PHP Chinese website!