gpt4 book ai didi

go - 在银杏测试中检查非空值的正确方法

转载 作者:行者123 更新时间:2023-12-01 22:23:20 25 4
gpt4 key购买 nike

假设函数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它,它将被执行并失败。

我想知道是否有一种惯用的方法来添加一个对 testInstance.List有效的检查,然后再执行使用它的 It子句。

最佳答案

根据ginkgo's documentation

将断言放在BeforeEach和AfterEach块中也很常见。例如,这些断言可以断言在为规范准备状态时没有发生错误。

关于go - 在银杏测试中检查非空值的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61547310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com