Предположим, что функция Builder
возвращает структуру, подобную этой:
type MyStruct struct{
List []OtherStruct
}
Я хочу протестировать функцию Builder
, используя ginkgo
. Я создал набор тестов со следующей структурой:
Describe("Builder Test", func() {
var (
testInstance Mystruct
err error
)
BeforeEach(func(){
testInstance, err = Builder()
})
It("Should not fail", func(){
Expect(err).NotTo(HaveOccurred())
})
It("Should have a valid List", func(){
Expect(testInstance.List).To(HaveLen(1))
})
It("Should pass some tests", func(){
Expect(testInstance.List).To(SomeCheck())
})
It("Should pass other tests", func(){
Expect(testInstance.List).To(OtherCheck())
})
It("Should pass yet nother tests", func(){
Expect(testInstance.List).To(YetSomeCheck())
})
})
Однако, если по какой-то причине Builder
не удалось правильно инициализировать testInstance
и поле List
не инициализировано, все It
тесты не пройдены с Panic
из-за отсутствия индекса. Поскольку я ожидаю, что количество тестов будет расти, я хотел бы предотвратить это. Я добавил 'It' («Должен иметь действительный список») assertion, but this doesnt prevent the other
It` для выполнения и сбоя.
Мне интересно, есть ли идиоматический c способ добавить проверку на testInstance.List
, которая будет действительна до выполнения It
предложений, которые ее используют.