假设一个函数Builder返回一个结构,如下所示:
type MyStruct struct{
List []OtherStruct
}我想使用ginkgo测试Builder函数。我创建了一个具有以下结构的测试套件:
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 othera valid List”)列表,但失败了。
我想知道是否有一种惯用的方法,可以在使用testInstance.List的It子句执行之前添加检查,使其有效。
发布于 2020-05-05 04:12:57
在BeforeEach和AfterEach块中放置断言也是很常见的。例如,这些断言可以断言在为规范准备状态时没有发生错误。
https://stackoverflow.com/questions/61547310
复制相似问题