go - 我可以迭代银杏的测试吗
问题描述
是否可以有可变数量的测试用例。假设我有一个计算数组中值的 BeforeSuite 函数。
然后根据数组的长度,我想对每个数组元素运行一个测试。
var _ = Describe("Outer", func() {
var stringArray []string
BeforeSuite(func() {
stringArray = []string{"a", "b", "c", "d", "e"} // can vary every time i run the suite
})
Describe("test 1", func() {
for _, s := range stringArray {
It("multiple tests", func() {
print(s)
Expect(s).ToNot(Equal("f"))
})
}
})
})
我确实了解银杏的运行方式。它进行 2 次解析。首先它运行所有非规范元素,然后运行规范元素。
github https://github.com/onsi/ginkgo/issues/462上有一个适合我的用例的问题,但是 OP 被误解了,它采取了不同的方式。
解决方案
对的,这是可能的。我以前尝试过类似的,没有任何问题。每次循环实际运行时都应该是一个新的测试用例。因此,当一个测试实际失败时,给它一个新名称以将其与其他测试区分开来。
var _ = Describe("Outer", func() {
var stringArray []string
BeforeSuite(func() {
stringArray = []string{"a", "b", "c", "d", "e"} // can vary every time i run the suite
})
Describe("test 1", func() {
for _, s := range stringArray {
When("Input is "+s, func(){
It("match the output", func() {
print(s)
Expect(s).ToNot(Equal("f"))
})
})
}
})
})
您当前的代码是否遇到任何问题?
推荐阅读
- java - How to make IntelliJ color preview recognize a custom Color class?
- c# - How to return value of items in Listbox to Textbox
- excel - 如何格式化此 VBA 电子邮件
- python - Python DataFrame 选择行 3 年
- python - urllib3 和 curl 不适用于某些网站,但浏览器可以使用
- python - 如何在不使用 for 循环的情况下检索具有明确列名的数据框中的每一行并写入“Hi 5”?
- java - 如何将多部分响应作为流读取和解析?
- python - 从内存中删除某些变量未初始化的特定变量(尝试除外)
- c++ - 使用 unique_ptr 和返回数据的动态成员数据
- r - 每日对数回归的拟合正态分布与 VG 分布