假设一个函数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
原因是索引超出范围。由于我预计测试数量会增加,因此我想防止这种情况发生。我添加了“它”(“应该有一个有效的列表”)assertion, but this doesnt prevent the other
它被执行并失败。
我想知道是否有一种惯用的方法可以在执行使用它的子句testInstance.List
之前添加一个检查是否有效。It