php editor Yuzai will introduce to you how to make an instance object available for use in all tests. When performing unit testing, we often need to create an instance object and reuse it in multiple test cases. In order to avoid the trouble of repeatedly creating objects, we can create an instance object before the test starts and save it as a property of the class by using the setUp() method. In this way, we can access this instance object in all test methods, thereby improving code reusability and testing efficiency. Next, let us look at the specific implementation method.
I am writing a component test for an http service. I have a test runner class that contains some useful structures and shared functions (mainly "make http calls" and "compare json structures"). The test runner class needs to have domains extracted from envvars for sending http calls. Instead of getting the domain from an environment variable every time I make an http call, I'd rather parse it once and set it in an instance of the test runner class and then have that instance available to all my test functions.
Assume the expected signature of the test function is func TestXxx(t *testing.T) {...}
How can I make this instance available for my tests?
Code:
Use package-level variables to store values. Initialize the value in the accessor function. Use sync.Once to ensure initialization is completed once.
type Helper struct { message string } var ( helper *Helper helperOnce sync.Once ) func getHelper() *Helper { helperOnce.Do(func() { helper = &Helper{"Hello"} }) return helper } func TestFirst(t *testing.T) { h := getHelper() t.Log(h.message) } func TestSecond(t *testing.T) { h := getHelper() t.Log(h.message) }
//m.sbmmt.com/link/50d758cc9ab8bb51177b071d370caac2
The above is the detailed content of How to make one instance object available to all tests?. For more information, please follow other related articles on the PHP Chinese website!