Here is my directory hierarchy:
/
|-- main.go // package main, an HTTP server which accepts request and calls C/U APIs in pkg1 to finish certain task
|-- main_test.go // wants to call veryfyTaskNumber in pkg1_test
|-- pkg1 // package pkg1, CRUD APIs with Retrieve&Delete unexported for safety
|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1
I have some utility functions for tests only in pkg1_test.go
. main.go
imports pkg1
. Now I want to use these functions in my main_test.go
. After searching I found two possible solutions, but both of them have some drawbacks:
pkg1.go
. However these functions might be contained in binaries generated by go build
.testutility
package, then import it in *_test.go
manually. The problem is that these functions use some internal methods in pkg1
.So I was wondering whether there is a better solution to this problem.
If you use this function in *_test.go
file throughout the project it's a good idea to move it to a utils package and import this package in your *_test.go
. Moreover since this util package is used only for testing purposes I suggest to save the output of the internal function of pkg1
in a support file and load it when you call the support package's function which should use the private function of pkg1
.
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