Звучит так, будто вы ищете шаблон BeforeEach
. У вас нет доступа к testing.T
объекту в TestMain
, потому что это более подходящее место для инициализации до и после запуска набора тестов.
Есть несколько фреймворков, которые могут дать вам BeforeEach
дешево:
чтобы назвать несколько.
Вы также можете сделать свой собственный бросок:
type test struct{
ctrl *gomock.Controller
mockFoo *MockFoo
// ...
}
func beforeEach(t *testing.T) test {
ctrl := gomock.NewController(t)
return test {
ctrl:ctrl,
mockFoo: NewMockFoo(ctrl),
}
}
func TestBar(t *testing.T) {
test := beforeEach(t)
// ...
}
func TestBaz(t *testing.T) {
test := beforeEach(t)
// ...
}