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