Использование testing.T в TestMain
Я хочу запустить несколько тестовых случаев, для которых необходимо запустить фиктивный сервер GRPC. я использую gomock
библиотека для этого. Чтобы запустить сервер, я должен передать переменную типа testing.T
к этой функции - gomock.NewController()
, Так как это своего рода инициализация для всех тестовых случаев, я хочу сделать это в TestMain
, Но TestMain
имеет доступ только к testing.M
Так как мне справиться с этим делом? Создать новый testing.T
структура в TestMain
? Это будет работать?
0 ответов
Похоже, вы ищете 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)
// ...
}